基本上我正在尋找一種簡單的方法來使用剛體/物理引擎讓我的船看著另一個物體(敵人)。我想得到我的變換和敵人變換之間的方向,將其轉換為旋轉,然后使用內置的 MoveRotation 可能會起作用,但它會導致這種奇怪的效果,它只是有點傾斜船。我發布了一些代碼以及嘗試旋轉船之前和之后的影像(球體是敵人)。
private void FixedUpdate()
{
//There is a user on the ship's control panel.
if (user != null)
{
var direction = (enemyOfFocus.transform.position - ship.transform.position);
var rotation = Quaternion.Euler(direction);
ship.GetComponent<Rigidbody>().MoveRotation(rotation);
}
}
前。
后。


uj5u.com熱心網友回復:
嗯Quaternion.Euler是圍繞給定角度的旋轉,為方便起見提供為Vector3.
您的方向是一個從ship朝向指向的矢量,enemyOfFocus并且具有大小,因此這些x, y, z值還取決于您的物件之間的距離。這些不是歐拉角!
您更想要的是Quaternion.LookRotation(檔案中的示例基本上就是您的用例;))
var direction = enemyOfFocus.transform.position - ship.transform.position;
var rotation = Quaternion.LookRotation(direction);
ship.GetComponent<Rigidbody>().MoveRotation(rotation);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/408555.html
標籤:
上一篇:不能統一移動相機
