EasyAR如何使用,教您配置EasyAR Unity SDK。
这篇文章介绍如何使用EasyAR.unitypackage配置EasyAR。
操作方法
- 01
导入Package 首先,你需要下载EasyAR压缩包,找到EasyAR.unitypackage,打开并导入到Unity中。
- 02
初始化EasyAR 为了让EasyAR正常工作,你需要将EasyAR prefab或其它prefabs添加到场景。拖拽EasyAR Prefab到场景中。
- 03
你可以在登录EasyAR网站后创建key。你可以在这里找到如何操作。然后使用这个key来初始化EasyAR。可以添加如下两行代码到你的初始化代码中。 ARBuilder.Instance.InitializeEasyAR(key); ARBuilder.Instance.EasyBuild(); 如果使用默认配置(CameraDeviceBaseBehaviour.CaptureWhenStart是启用的)EasyAR将在MonoBehaviour.Start调用的时候开始运行。所以最好将上面两行代码放到Awake里面。 如果你想看到和样例一样的输入key的框,可以创建一个脚本并添加以下代码,并把这个脚本拖拽到EasyAR prefab上面。 using UnityEngine; namespace EasyAR { public class ARIsEasyBehaviour : MonoBehaviour { [TextArea(1, 10)] public string Key; private void Awake() { ARBuilder.Instance.InitializeEasyAR(Key); ARBuilder.Instance.EasyBuild(); } } } 添加ImageTarget ImageTarget有许多用法,可以参考HelloARTarget样例。 如果需要在场景中静态配置ImageTarget,需要拖拽一个ImageTarget Prefab到场景中。如何配置可以参考ImageTarget Prefab和ImageTargetBaseBehaviour。
- 04
Target事件 你可以在ImageTargetBehaviour中处理target相关事件 public class EasyImageTargetBehaviour : ImageTargetBehaviour, ITargetEventHandler { void ITargetEventHandler.OnTargetFound(Target target) { Debug.Log("Found: " + target.Id); } void ITargetEventHandler.OnTargetLost(Target target) { Debug.Log("Lost: " + target.Id); } void ITargetEventHandler.OnTargetLoad(Target target, bool status) { Debug.Log("Load target (" + status + "): " + target.Id + " -> " + target.Name); } void ITargetEventHandler.OnTargetUnload(Target target, bool status) { Debug.Log("Unload target (" + status + "): " + target.Id + " -> " + target.Name); } } 或是在实现了ITargetEventHandler接口的全局target管理器中处理target事件 public class EasyARTargetMananger : MonoBehaviour, ITargetEventHandler { void ITargetEventHandler.OnTargetFound(Target target) { Debug.Log("Found: " + target.Id); } void ITargetEventHandler.OnTargetLost(Target target) { Debug.Log("Lost: " + target.Id); } void ITargetEventHandler.OnTargetLoad(Target target, bool status) { Debug.Log("Load target (" + status + "): " + target.Id + " -> " + target.Name); } void ITargetEventHandler.OnTargetUnload(Target target, bool status) { Debug.Log("Unload target (" + status + "): " + target.Id + " -> " + target.Name); } } 你可以在这些事件中控制ImageTarget节点下物体的显示/隐藏。 Bundle ID(Android/iOS) 你需要在生成Android/iOS应用的时候设置bundle ID。 bundle ID 应该与easyar网页上生成的ID 相同。否则可能造成SDK初始化失败并黑屏。如果是在 Mac or Windows上,这个ID就不需要了。
- 05
Graphics API(Android/iOS) 在导出Android和iOS应用的时候,需要设置graphics API 为OpenGL ES 2.0。这个设置在不同的Unity版本中有所不同。 Unity 4.x 中设置如下
- 06
Unity 5.x 设置如下
- 07
XCode 配置(iOS) *如果你在使用最新的Unity版本,Unity会自动完成这个步骤。 如果你在生成iOS app,在Unity打包生成Xcode工程之后,需要多一步设置。 XCode 6.x: 添加 “libc++.dylib” 到链接选项中
- 08
XCode 7.x: 添加 “libc++.tbd” 到链接选项中。并设置 “Enable Bitcode” 为“NO”。