![Unity 2018 AR与VR开发快速上手](https://wfqqreader-1252317822.image.myqcloud.com/cover/133/36862133/b_36862133.jpg)
5.4 EasyAR SDK概述
5.4.1 总体结构
EasyAR SDK的结构主要由“EasyAR_Tracker”追踪器的游戏对象和识别目标的游戏对象组成。其中,“EasyAR_Tracker”游戏对象的子对象内容决定了具体的识别内容和功能,如图5-7所示。
![](https://epubservercos.yuewen.com/8A3A4C/19549639508907106/epubprivate/OEBPS/Images/Figure-P110_5930.jpg?sign=1738950425-1OlBQCefMrDJiCLoLeXECTjqv43xA0It-0-804213482016f33de04ddc7bb9b4aba2)
图5-7
为了方便使用,官方把不同情况下的“EasyAR_Tracker”都做成了预制件放在“EasyAR/Prefabs/Composites”目录下,使用起来很方便,如图5-8所示。
![](https://epubservercos.yuewen.com/8A3A4C/19549639508907106/epubprivate/OEBPS/Images/Figure-P110_5932.jpg?sign=1738950425-ErxJZues2LbzQalVplkiRPs82hZlgGrI-0-c7ff96f1f927a9789a160f2b05f0ac04)
图5-8
另外几个常用的预制件放在“EasyAR/Prefabs/Primitives”目录下,如图5-9所示。
![](https://epubservercos.yuewen.com/8A3A4C/19549639508907106/epubprivate/OEBPS/Images/Figure-P110_5933.jpg?sign=1738950425-6JZJp6MAivNenyifeiLm9XyGvpu7JrYp-0-b842738b05a438f0381ce20b2d4a9123)
图5-9
5.4.2 EasyAR_Tracker(EasyAR追踪器)
在“EasyAR_Tracker”中主要需要填写Key,如果没有正确填写,就会出现错误提示信息“Error: Invalid Key”。将之前在网站申请的“SDK License Key”的内容复制到“EasyAR_Tracker”的“Key”属性中,如图5-10所示。
![](https://epubservercos.yuewen.com/8A3A4C/19549639508907106/epubprivate/OEBPS/Images/Figure-P111_5964.jpg?sign=1738950425-fx7yDaUhElrbKQNhqNksupAkpuaRiVS3-0-e6e8148cad93451dfafdacbef499b88f)
图5-10
此外,如果要打包应用,“Package Name”必须和Key里面的设置对应起来。需要把“Package Name”复制到“Player Settings”对应的项目下,如图5-11所示。
![](https://epubservercos.yuewen.com/8A3A4C/19549639508907106/epubprivate/OEBPS/Images/Figure-P111_5965.jpg?sign=1738950425-E0NVc4cLbU9rVRBN4vL51YlFeJHp1l5g-0-721be5838ae61bc13ae6deb1e3a29cd8)
图5-11
5.4.3 CameraDevice(摄像设备)
“CameraDevice”主要是控制计算机或者手机上摄像头状况的,如果需要在中途才打开摄像头或变更摄像头的设置,则需要对“Camera Device Behaviour”组件进行控制,如图5-12所示。
![](https://epubservercos.yuewen.com/8A3A4C/19549639508907106/epubprivate/OEBPS/Images/Figure-P112_5998.jpg?sign=1738950425-AsBOeTA8CAFMWsYAC5X2YUI2oc2NQC3Y-0-4136da2afc2b1a36a388e59d76ae5a0d)
图5-12
● Capture When Start:程序运行的时候自动打开摄像头并开始拍摄。
● Request Platform Permission:弹出需要使用摄像头的提示。如果没有选中,则不会有该提示,需要手动设置权限。
● Camera Size:设置摄像头的分辨率。
● Camera FPS:设置摄像头的帧数。
● Camera Device Type:设置摄像头类型,比如Default(默认)、Back(后置)、Front(前置)、Index(用顺序指定)。
● Horizontal Flip:摄像头内容水平翻转。
通常情况下,这里的内容都不需要设置。
5.4.4 ARCamera(Unity摄像机)
“ARCamera”用来设置Unity里的Camera内容,基本不用修改,如图5-13所示。
![](https://epubservercos.yuewen.com/8A3A4C/19549639508907106/epubprivate/OEBPS/Images/Figure-P112_5999.jpg?sign=1738950425-kTW2e6u0oBcx9fUa6lozJeL1ym87KAdb-0-30cfdd414686ec501dcf128ebfcb0413)
图5-13
● Render Reality:是否显示摄像头设备拍摄到的内容并将其作为背景。
● World Center:有3种模式,即First Target(第一目标)、Camera(摄像机)和Specific Target(特定目标),实际效果区别不大。只有在多个识别对象交互的时候,会需要调整修改。
First Target:场景以第一个跟踪到的目标(Target)为中心。在这个模式下,将无法手动控制ARCamera的变换(Transform)。
Camera:场景以摄像机为中心。在这个模式下,将无法手动控制目标的变换。
Specific Target:场景以CenterTarget(中心目标)所指定的目标为中心。如果这个指定的目标没有被跟踪,就将会回退到摄像机中心模式。
5.4.5 EasyAR SDK中类的使用
EasyAR SDK中的类多数都已经被封装,需要通过继承后对其子类进行设置调用或者在其子类上扩展功能。
例如,ImageTargetBaseBehaviour类是图片目标的基础类,从官方例子中直接继承以后,对其子类ImageTargetBehaviour进行设置,从而使用ImageTargetBaseBehaviour类的功能。
public class ImageTargetBehaviour : ImageTargetBaseBehaviour { }
5.4.6 图片识别度检测
EasyAR还提供了一个在线的图片识别度检测的工具。网址为https://www.easyar.cn/targetcode.html。
单击“浏览”按钮上传图片以后,可以看到图片识别度的评价。1、2星是不能识别,3星是较难识别,4、5星是易识别,如图5-14所示。
![](https://epubservercos.yuewen.com/8A3A4C/19549639508907106/epubprivate/OEBPS/Images/Figure-P113_6024.jpg?sign=1738950425-5ijTCUZXnmirn661v9FE2axshoSGJFZb-0-0953e88e625ca14aac6ecbdcc90bc00c)
图5-14