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眼鏡開發與部署(三)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章