這有點棘手。
問題是目標物體正在移動和反彈,所以如果我讓 freelook 相機觀察或跟隨移動的物體,相機也會反彈,我不想要它。
我想做的是第一部分,就像現在攝像機在玩家身后移動,而玩家正在看著移動的目標。然后當攝像機在玩家身后時,移動的物體就會離開螢屏區域。玩家頭部仍在注視著它,但攝像機一直在注視并跟隨玩家。
我想以某種方式使相機旋轉看著移動的物體,但從玩家的角度來看,而不是相機會跟隨/看著移動的物體。
這是移動物體(紅色圓圈)開始移出螢屏時的螢屏截圖:

現在我不確定如何進入下一部分。
在這一點上,我希望相機留在玩家身后,并通過玩家的眼睛旋轉“喜歡”地看著移動的物體。
我現在再次對其進行了測驗,當物件正在移動并且相機在播放器后面時,就像在螢屏截圖中一樣腳本 ?
我想用玩家的頭部旋轉相機,通過玩家的視角觀察移動的物體,這樣相機就不會得到移動的物體彈跳和其他效果。
此螢屏截圖解釋了我的意思是相機仍在看著玩家并跟隨玩家,但與玩家一起觀看移動的物體。在這種情況下,我正在用滑鼠旋轉 freelook 相機,但我想在腳本中進行。

uj5u.com熱心網友回復:
不確定您當前使用的是什么,因為這里沒有提供代碼......但不是直接傳遞目標物件的位置,而是簡單地使用一個向量 wherex和z來自您的目標物件,而y來自您的播放器物件,例如
// not necessarily the player itself but the usual target object for your camera
Transform player;
Transform camera;
Transform lookTarget;
camera.position = /*Just the usual way how you get your camera position*/;
var targetPosition = lookTarget.position;
targetPosition.y = player.position.y;
// Snapping see https://docs.unity3d.com/ScriptReference/Transform.LookAt.html
camera.LookAt(targetPosition);
// or if you are e.g. using smooth interpolation
var targetRotation = Quaternion.LookRotation(targetPosition - camera.position);
camera.rotation = Quaternion.Slerp(camera.rotation, targetRotation, 5f * Time.deltaTime);
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/522047.html
標籤:C#unity3d
