Nreal眼镜的开发与部署(二)

Nreal简单的开发:

1.添加Nreal的摄像机

在新建的场景里删掉原来的摄像机,把SDK里的Prefab摄像机NRCameraRig预制体拉到场景中
在这里插入图片描述
NRCameraRig上的属性
在这里插入图片描述
①操作系统的状态设置,一般是配置好使用默认的,配置里包括地面监测、图像跟踪等等
②该组件用于设置相机参数,更新设备模式,当TrackingType选择Tracking6Dof,设备可以前后左右移动并旋转;当TrackingType选择Tracking3Dof,只能原地旋转
③应用app的管理,里面是对手柄控制器操控监听
④Nreal虚拟显示器,保持默认就好


2.添加手柄操控交互

把NRInput预制体拉到场景中
在这里插入图片描述
NRInput上的属性
在这里插入图片描述
需要将Override Camera Center那一项值更改为CenterCamera,只需要将NRCameraRig下的CenterCamera拖放进来就行了
在这里插入图片描述
其他的值默认不需要改变,已经配置好了。


如何与UI交互

在Canvas上,需要添加CanvasRaycastTarget脚本,添加之后,该Canvas下的所有UI组件都可以手柄进行交互
在这里插入图片描述
在这里插入图片描述


如何使用AR图片识别功能在这里插入图片描述

在这里插入图片描述
①将NRTrackableImageTarget预制体拖到场景中
②场景中放置识别图片后出来的模型(例如:Cube)
在这里插入图片描述
③新建个空物体,挂载脚本TrackableFoundTest
在这里插入图片描述
④Observer的值为NRTrackableImageTarget,Obj的值为物体Cube,这就好了

打开TrackableFoundTest脚本,只有几行代码,通俗易懂。这几行代码就是识别后在识别图上显示物体。在此基础上我添加了手柄与物体的交互,手柄指向物体摁下Trigger键,物体随机变色,需要引入using NRKernal命名空间

using NRKernal;
using UnityEngine;

public class TrackableFoundTest : MonoBehaviour
{
    public TrackableObserver Observer;
    public GameObject Obj;
    void Start()
    {
#if !UNITY_EDITOR
        Destroy(GameObject.Find("EmulatorRoom"));
#endif
        Obj.SetActive(false);
        Observer.FoundEvent += Found;
        Observer.LostEvnet += Lost;
    }

    private void Update()
    {
        if (NRInput.GetButtonDown(ControllerButton.TRIGGER))
        {
            Obj.GetComponent<Renderer>().material.color = new Color(Random.value, Random.value, Random.value);
        }
        
    }

    private void Found(Vector3 pos, Quaternion qua)
    {
        Obj.transform.position = pos+new Vector3(0,0.15f,0);
        Obj.transform.rotation = qua;
        Obj.SetActive(true);
    }
    private void Lost()
    {
        Obj.SetActive(false);
    }
}

下一章是介绍如何部署到Nreal眼镜中

请看Nreal眼镜开发与部署(三)

原创文章 7 获赞 10 访问量 2160

猜你喜欢

转载自blog.csdn.net/qq_33795300/article/details/106057279
今日推荐