1、新建Unity工程,分别导入Vuforia SDK插件包和识别图数据包,然后根据我们第一章中的设置方法,将需要添加的物体添加到场景,并将参数调整到能够正常识别并显示3D物体。 如下图所示:
选中ImageTarget,将其自身的DefaultTrackableEventHandler移除,并将该脚本复制一份命名为MyTrackableEventHandler,然后附加到ImageTarget上。然后创建TrackObject.cs和Rotate.cs两个文件。 双击打开Rotate.cs文件,并在该脚本Update()方法中添加一行代码让物体旋转,代码如下: //Rotate.cs//刷新函数,每一帧被调用一次void Update (){//让物体绕Y轴自转 transform.Rotate(new Vector3(0f,1f,0f)); } //TrackObject.cs//TrackObject类用来查找和确定识别后显示的物体public class TrackObject : MonoBehaviour{ //脱卡之后模型的位置 public Vector3 LostPosition;} 2、修改MyTrackableEventHandler.cs中的OnTrackingFound和OnTrackingLost两个方法。 //识别成功时调用的方法private void OnTrackingFound() { //获取所有的TrackObject物体,并将它们都销毁 TrackObject[] objects = FindObjectsOfType
然后将Cube拖到与ImageTarget平级关系,如下图所示。
接下来再Hierarchy面板中右键点击创建一个新的Camera,点击其Inspector面板中的Add Layer标签创建一个新的层。
在Layer 10的位置创建一个新的图层叫OnShow。再调整刚才新建的Camera的Clear Flags属性如下。
选择Depth only,然后再Culling Mask下选择OnShow层,如下图所示。
4、在Assets文件夹中新建一个名叫Resources的文件夹,将Cube拖到该文件夹中生成prefab预制件,并删除在层级视图Hierarchy中的Cube物体。选中ARCamera子物体下的Camera对象,在其Inspector面板中找到Culling Mask属性并取消勾选OnShow。
接下来,点击运行可以测试脱卡效果的实现。