繁体   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