[英]Keep object “fixed” in front of camera (Google Cardboard + Unity)
我是Unity(和VR)的新手,我正試圖在Google Cardboard中設置一個小例子,我有一個模型在用戶轉過頭時轉動 - 類似於Google Cardboard App中的模板演示。 因此,當用戶向上看時,模型向上旋轉,向左看時,模型向左旋轉等。
我的場景目前有一個CardboardMain和我的3D模型 。 我已經將Cardboard Head腳本附加到我的模型上,該模型現在可以通過頭部運動正確旋轉。 缺少的是將物體留在相機前面。
為了實現這個功能,我創建了一個附加到3D模型的腳本。 該腳本如下所示:
using UnityEngine;
using System.Collections;
public class lookAtMe : MonoBehaviour {
private CardboardHead head;
private Vector3 offset;
public GameObject scrimshaw;
// Use this for initialization
void Start () {
head = Camera.main.GetComponent<StereoController>().Head;
scrimshaw = GameObject.FindGameObjectWithTag ("Scrimshaw");
}
// Update at end of frame
void LateUpdate () {
// head.transform.position = the positon of the head on the plane
// head.Gaze.direction = positon of where the head is looking
offset = head.Gaze.direction + head.transform.position;
scrimshaw.transform.position = scrimshaw.transform.position + offset;
}
}
但是,我的模型的位置不會改變。 我的印象是,如果我使用新的向量3提供transform.position
,它將相應地移動對象。 怎么可能呢?
我嘗試在Main Camera實例上應用transform.LookAt (target)
,將目標設置為模型。 雖然這種方法確實有效,但仍然可以使用它。
原來不需要腳本。 實現該功能的必要步驟是禁用CardboardMain的Head子項的Track Rotation和Track Position ,這可以在編輯器中完成。 沒有跟蹤相機保持靜止。
但是由於CardboardHead腳本應用於對象本身,所有實際的跟蹤轉換都直接應用於該對象。
如果要將任何對象固定在攝像機前面,請將其設置為攝像機的子對象。您可以在編輯器中或運行時執行此操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.