簡體   English   中英

Position a 3D model 鏡頭前帶偏移

[英]Position a 3D model in front of the camera with offset

我有一個在特定位置/旋轉移動的相機。 我有幾個 3D 型號。 我想要一個 3D model 以一定的偏移量出現在相機前面。 它們應該放在相機的中央。 相機和 3D model 之間的距離應始終保持不變,並且與 position 相機的位置和旋轉方向無關。

到目前為止,我一直試圖這樣做:

void OnCamNewPosition(){

this.transform.position = Camera.main.ScreenToWorldPoint(new Vector3(Screen.width/2 + offset, Screen.height/2 + offset, Camera.main.nearClipPlane + offset));
}

當相機處於特定位置時,這一小段代碼在特定時間起作用,但並不總是起作用。 有時 3D 模型位於相機的左側而不是中心,有時它位於相機上方,我們只能看到 3D model 的一半。

就像評論說的那樣,通過屏幕空間是沒有意義的。 如果您瞄准相機變換,它將始終位於中心並且也適用於未渲染到屏幕的相機。

this.transform.position = Camera.main.transform.position + Vector3.forward * offset;
        
// if it should be attached to the camera
this.transform.SetParent(Camera.main.transform);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM