所谓的UDT在Untiy中的意思就是User Defined Targets 也就是用户自定义Target,接下来要实现的内容是,如何在Untiy中实现当用户点击按键的时候创建一个简单的ImageTarget来实现将用户拍摄的图片变成一个ImageTarget,这样不仅给用户带来更大的自由度,也解决了固定ImageTarget带来的麻烦。好了,下面就来说说相应的解决步骤:
第一步,创建一个新的Unity项目;
第二步,导入Vuforia Unity Extension package(vuforia-unity-android-ios-X-Y-Z.unitypackage);
第三步,将Unity中的MainCamera从场景中删掉;
第四步,然后在Project视图中打开Assets/Vuforia/Prefabs 文件夹;
第五步,拖拽ARCamera, UserDefinedTargetBuilder和ImageTarget这三个预制体到你的场景当中;这几步完成之后界面应该是这样的;(这个步骤使用过的应该很好理解,但是为了大部分人就配上图吧)
在这里需要注意一个地方就是ARCarmera中需要AppLicenseKey,这个可以在Vuforia官网进行注册就可以下载,然后粘贴到这里就可以了,具体的帖子有很多,这里就不再赘述;
全部拖拽完成了之后,就来进行相应的属性设置
ImageTarget属性设置:
1, Type类型更改为:User Defined;(也就是用户可以自定义ImageTarget)
2, 然后你可以在场景中随便创建一个对象(cube),然后将其设为Imagetarget的子级(在这里你可以自己定义好cube的位置和大小等属性和非用户自定义的步骤是一样的)
3, 如果你的场景中没有Directional Light 就再添加一个上去;
4, 选中一件添加上去的UserDefinedBuilder然后会看到有几个需要勾选的地方,将第一个勾选上也就是Start Scanning Automatically这个选项,这个选项的意思就是在开始的时候可以自动的进行摄像头的扫描;
下面咱们就开始写代码吧:
1, 创建一个C#脚本名字叫SimpleUDTHandler.cs并且将这个脚本挂到创景中的UserDefinedTargetBuilder上,下面就开始实现这个脚本,并且讲述这个脚本的具体内容。
SimpleUDTHandler.cs~~:
//在这里我们为SimpleUDTHandler引用IUserDefinedTargetEventHandler接口;下面我们就实现接口中的方法,注意:要全部都实现哦;
using System.Collections;
using UnityEngine;