Hololens中由於活動空間的限制,傳送門效果顯得很有用,根據本教程效果,還可以做瞬移,瞬移效果的教程見本人後續博客更新。
1、搭建HoloLens開發的基本環境,導入開發包。
本案例爲了演示需要,做了如下素材:
圖1.1
1)HoloLensCamera,角色位置,從HoloToolkits拖入預製即可。
2)傳送門,本例使用一個橢圓作爲傳送門。包含一個空Gameobject爲本例中的point1,一個球體Spere。
3)一個cube作爲目標點的景物,在目標點視窗可以看到,有一個cube,傳送門中同樣可以看到目標點景象。
4)目標點camera,用來渲染目標點的取景。
5)傳送目標點,是個空的Gameobject,本例爲dest。
6)一個Terrain,簡單貼圖。
7)調整各自相對位置,似的傳送效果能夠體現出來,本例中實現的效果爲,目標走進傳送門之後,會被傳送到dest所在的位置。
2、爲傳送門添加目標點渲染。
圖1.2
如圖,
1)在目錄中創建一個Render Texture,命名爲render1。
2)將render拖入camera的Target Texture中。
3)將render拖入sphere的材質。
3、設置傳送門觸發碰撞,選擇Sphere,點選Is Trigger。
4、爲傳送門父節點添加Rigidbody效果,然後創建腳本portal並拖入point1。反選point1剛體效果的重力選項(Use Gravity)
5、打開腳本portal,定義目標點Point、定義碰撞響應
public Transform Point;
public Collider person;
internal protected void OnTriggerEnter(Collider other)
{
if(other.Equals(person))
{
other.transform.root.position = Point.position;
Debug.Log("triggerenter");
}
}
6、返回point1,將dest拖入腳本的point選項,將HoloLensCamera拖入person選項
。
7、接下來編譯運行即可。
本文參考源碼:https://github.com/xushuxu/HoloLens_Portal_unity