5.4 EasyAR SDK概述
5.4.1 总体结构
EasyAR SDK的结构主要由“EasyAR_Tracker”追踪器的游戏对象和识别目标的游戏对象组成。其中,“EasyAR_Tracker”游戏对象的子对象内容决定了具体的识别内容和功能,如图5-7所示。
图5-7
为了方便使用,官方把不同情况下的“EasyAR_Tracker”都做成了预制件放在“EasyAR/Prefabs/Composites”目录下,使用起来很方便,如图5-8所示。
图5-8
另外几个常用的预制件放在“EasyAR/Prefabs/Primitives”目录下,如图5-9所示。
图5-9
5.4.2 EasyAR_Tracker(EasyAR追踪器)
在“EasyAR_Tracker”中主要需要填写Key,如果没有正确填写,就会出现错误提示信息“Error: Invalid Key”。将之前在网站申请的“SDK License Key”的内容复制到“EasyAR_Tracker”的“Key”属性中,如图5-10所示。
图5-10
此外,如果要打包应用,“Package Name”必须和Key里面的设置对应起来。需要把“Package Name”复制到“Player Settings”对应的项目下,如图5-11所示。
图5-11
5.4.3 CameraDevice(摄像设备)
“CameraDevice”主要是控制计算机或者手机上摄像头状况的,如果需要在中途才打开摄像头或变更摄像头的设置,则需要对“Camera Device Behaviour”组件进行控制,如图5-12所示。
图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所示。
图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所示。
图5-14