簡體   English   中英

如何統一將四元數乘以 vector3?

[英]How do you multiply a quanternion by a vector3 in unity?

我有這段代碼:

private Transform player;
// Start is called before the first frame update
void Start()
{
    player = Object.FindObjectOfType<PlayerIdentifier>().transform;
}

// Update is called once per frame
void Update()
{
    float newPosX = (Quaternion.AngleAxis(player.rotation.z, Vector2.up) * player.position).x;
    float newPosY = (Quaternion.AngleAxis(transform.rotation.z,Vector2.up)*transform.position).y;
    Vector3 newPos = new Vector3(newPosX, newPosY);
    newPos = newPos * Quaternion.AngleAxis(transform.rotation.z, Vector2.up);
    transform.position = newPos;
}

你看,我在第 13 行收到一個錯誤,指出四元數不能與 Vector3 相乘。 有什么方法可以在沒有錯誤消息的情況下將它們相乘?

沒關系,您必須將四元數放在 Vector3 之前 像這樣Quaternion qua = Quanternion.Euler(0,0,90); Vector3 vect = new Vector3(0,1,0); Vector3 output=qua*vect; Quaternion qua = Quanternion.Euler(0,0,90); Vector3 vect = new Vector3(0,1,0); Vector3 output=qua*vect;

暫無
暫無

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

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