使用ARCore创建新型用户交互体验(2)
在《使用ARCore创建新型用户交互体验》系列文章的第一篇中,我们分享了一些充满创意的想法,教你如何使用光照估计这样的功能来实现新型用户交互和游戏体验。第二篇文章中,我们将分享更多使用案例,让你了解如何使用ARCore的即时预览和运动跟踪功能。
你能想象在AR中玩“抽积木”游戏吗?如果你不了解这个游戏,这里简单介绍一下,它的玩法是通过从积木塔中移走积木然后放到塔顶,从而逐渐把积木塔搭得更高。在本文中,我们将分享一些更为实用的方法,包括使用ARCore的运动跟踪功能来构建手持式AR游戏“抽积木”,或是使用AR会话暂停功能,帮助ARCore应用在失去焦点时,保持用户的参与度。
运动跟踪和距离判断
使用运动跟踪功能,你可以实现非常多的效果,包括:基于设备位置和朝向触发动画,以及基于设备与数字对象之间的距离把设备用作物理保险杠。“
抽积木”便是一个应用AR距离检测的有趣案例。通过使用设备和数字积木塔之间的距离信息,你可以在积木塔周围移动,寻找要移动的积木,然后使用简单而熟悉的手势操作移动积木,将它放到塔顶。
这是一个非常有趣的ARCore体验,在案例中,你将通过使用熟悉而简单的操作直接控制数字对象,例如:在屏幕上按住积木来握住它,然后移动设备寻找到合适位置后,松开手指来放下积木。基于距离和运动跟踪的用户交互功能将继续在手持式AR的同类功能中扮演重要角色。
暂停AR会话
为了保持用户参与度,向用户提供AR会话的暂停功能十分必要。用户或许会想要在行动中暂停,或是停止在应用中使用增强现实功能。
为了使用户能够暂停使用AR,你可以允许用户停止整个AR会话,然后当他们准备好回到AR模式后,再开启新的AR会话。然而,这样做会要求用户重新在现实世界中寻找平面或放置对象,可能会有一部分用户会不再进行操作。
另一个选择则是使用ARCore的功能来进行短暂的暂停。这样可以在临时阻止应用寻找平面和运动跟踪的同时,保留平面和已放置物品的原有信息。
ARCore支持暂停AR会话功能,所以作为一名开发人员,你仅需在Unity中禁用ARCoreSession组件即可。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using GoogleARCore;
public class PauseAR : MonoBehaviour
{
public ARCoreSession SessionController;
private bool m_sessionPaused = false;
public void TooglePauseMode()
{
if (SessionController == null)
{
return;
}
SessionController.enabled = m_sessionPaused;
m_sessionPaused = !m_sessionPaused;
}
}
AR应用的暂停功能不仅能让用户稍作休息。这个功能还有其它值得一提的用处,例如在单个设备的多人游戏中,它能在回合之间暂停会话,或是让用户在使用AR应用时接听电话,而不丢失接电话前应用中的信息。
AR活动已经暂停,在屏幕上出现了UI,在结束暂停后平面和花朵又回来了
需要注意暂停是临时的,如果用户移动得太远,使应用无法重新找到原有平面或特征点的话,AR中的物品或许会在暂停后丢失。
即时预览
ARCore v1.1.0 for Unity中新增了即时预览(Instant preview)功能。它仅可以在Unity中使用,当你在Unity中构建项目时,这个工具能允许你跳过构建过程,直接在ARCore支持设备上测试对AR应用的改动。这将把流程时间从数分钟缩短为几毫秒,从而让你近乎实时地在Unity编辑器中进行迭代、检查对象状态,调试错误,并查看对象的位置和大小比例。
若想体验即时预览功能,请安装ARCore 1.1 for Unity,在支持设备上安装HelloAR场景。默认情况下,例如:摄像机位置、朝向、平面搜索、特征点、光照估算和触屏输入等设备数据会载入Unity编辑器中,在游戏窗口显示。通过直接在Unity中使用这些信息,你可以更快地测试并迭代新功能。
尽管主流AR都是通过移动端设备在现实世界情景中体验的,但通常情况下开发者要在笔记本电脑或是台式电脑上开发AR应用,这样的环境是脱离现实世界的。即时预览功能则能实现在现实世界进行测试,这或许是在开发移动端AR应用时所解决的最大和最重要的难题。这个功能将让开发者能在Unity编辑器中直接测试现实世界的情况,例如对比着色器和现实物理材质之间的区别,或是比较不同光照条件对AR体验的影响。
开发人员直接在Unity中对比现实世界中的画面,从而更好测试和迭代对象材质
即时预览功能先已上线,在ARCore v1.1.0 for Unity中默认使用,欢迎开发者们使用体验!
小结
《使用ARCore创建新型用户交互体验》系列文章的第二篇就为大家介绍到这里,后续我们还将分享更多使用案例,让你了解如何使用ARCore的其它功能,尽请期待。更多关于AR的技术内容请访问 Unity中文官方论坛(UnityChina.cn)!
推荐阅读
Unite Beijing 2018
揭秘Unite
现场活动报名
活动信息:5月11-13日 北京国家会议中心
Unite 售票官网: http://unite2018.csdn.net/ 或者直接扫描下图二维码进行购票!
点击“阅读原文”访问Unity中文官方技术论坛 !