在WWDC 2017大会上,苹果带来的ARKit框架引起了广大开发者的兴趣,Unity也同时推出了ARKit开发插件,便于大家在Unity中直接开发ARKit应用。我们曾经为大家分享过使用Unity开发ARKit应用的简单示例,今天要为大家分享一个新工具:Unity ARKit Remote。
Unity ARKit Remote让开发者们以敏捷的方式创建应用原型,能够有效减少开发时间。此前,开发者需要反复修改脚本并编辑对象,然后构建到iOS设备上进行调试。使用Unity ARKit Remote只需在iOS设备上运行一个特殊应用,即可将ARKit数据传回Unity编辑器,然后在编辑器中实时调整游戏对象与脚本。
Unity ARKit Remote使用示例如下:
Unity ARKit Remote原理
使用Unity ARkit Remote在Unity编辑器中直接调整ARKit应用分为两个部分,首先开发者需要安装iOS应用UnityARKitRemote,该应用会将iOS设备上ARKit数据与Unity场景中的ARKitRemoteConnection游戏对象相结合。ARKitRemoteConnection对象会通过UnityARSessionNativeInterface向其它游戏对象传递数据,以在Unity编辑器中模拟ARKit的行为。设备中的UnityARKitRemote应用会将以下信息传递到编辑器中的Unity场景:
ARKit提供的设备相机视频流(按Y轴与UV纹理分离)
基于设备移动计算的相机位置与旋转
添加、删除及更新ARPlaneAnchor的事件,以及受影响的平面数据
点阵云数据
Unity ARKit Remote与Unity ARKit插件的使用需求一致,推荐使用Unity 2017.1及以上版本,因为这些版本的PlayerConnection有很大的改善,且UI支持更佳。
Unity ARKit Remote使用步骤
1.首先从Unity Bitbucket开源库或Asset Store资源商店下载最新的Unity ARKit插件,其中包含Unity ARKit Remote功能。
2.将UnityARKitRemote场景构建到兼容ARKit的iOS设备。在Build Settings中勾选“Development Build”,仅需构建一次,之后项目调整与迭代都可以直接在编辑器完成。构建到iOS设备需要在Player Settings中设置应用名称与标识符,并表明是Unity ARKit Remote。
3.打开应用中使用了Unity ARKit插件的场景,将ARKitRemote文件夹下的ARKitRemoteConnection预制件加入场景根目录。该预制件已被加入EditorTestScene场景的同一目录,可以使用该场景先进行测试。
4.在iOS设备上运行UnityARKitRemote应用,可以看到黑色界面提示“Waiting for editor connection..”。
5.点击编辑器的运行按钮,游戏视图会显示绿色屏幕,下方会出现提示“Please connect to player in the console menu”。
6.将Unity编辑器与设备上的UnityARKitRemote应用连接起来。这里用到Unity 2017.1提供的新功能,非常方便,直接点击控制面板菜单项“Connected payer”,然后从下拉列表中选择要连接的播放器即可。在Unity 5.6等版本中,需要通过Window/Profile
7.菜单创建Profiler窗口,然后在Profiler窗口顶部的“Active Profiler”下拉列表中选择目标设备。
8.如果以上步骤均已成功设置,游戏视图会显示“Start Remote ARKit Session”按钮,点击该按钮会在iOS设备上开启ARKit会话,并开始传递数据至Unity编辑器。然后编辑器会与设备显示同样的视频,在场景中导航也会同步更新,并且会定期点阵云数据以及找到的平面。
结语
ARKit将随iOS 11系统一起正式发布,Unity也会持续为ARKit框架提供支持,帮助广大开发者们轻松制作创意十足的AR游戏与应用。我们还将分享Unity与ARKit开发相关的技术内容在Unity官方中文社区(unitychina.cn),请保持关注!