微信号:Unity-GreaterChina

介绍:Unity官方开发者平台,分享最前沿的技术文章和开发经验,精彩的Unity活动和社区相关信息.

使用ARCore创建新型用户交互体验(2)

2018-04-30 18:08 Unity

《使用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中文官方技术论坛 !

 
Unity官方平台 更多文章 5月订阅Unity Plus加强版价格更实惠,三重好礼等待您! Unite Beijing 2018精彩周边活动集锦 (建议收藏) 使用Unity 2018.1项目模板功能 Unite 2018展区全曝光,Made with Unity精彩游戏等你来体验 Unite Beijing 2018全日程曝光,建议收藏
猜您喜欢 Dump flash芯片 每日安全动态推送(09-05) 用 consul + consul-template + registrator + nginx 打造真正可动态扩展的服务架构 别扯大数据 !请先面朝用户 从拉勾网“数据挖掘”招聘数据透视中国大数据产业【案例】