gpt4 book ai didi

c# - 如何将一个物体的局部轴旋转到另一个物体?

转载 作者:行者123 更新时间:2023-11-30 23:34:12 32 4
gpt4 key购买 nike

使用以下代码我可以将本地 Z 轴旋转到另一个游戏对象。

/// <summary>
/// Faces local Z axis to another target object.
/// </summary>
/// <param name="target">Target.</param>
private void FaceTo(GameObject target){
float damping = 0.03f;
var lookPos = target.transform.position - transform.position;

var rotation = Quaternion.LookRotation(lookPos);

transform.rotation =
Quaternion.Slerp(transform.rotation, rotation, Time.deltaTime * damping);
}

Update 方法的结果如下:

Result

现在我需要使用另一个轴而不是对象的 Z 轴面对对象;例如,我会使用正 X 轴来获得此结果:

enter image description here

如何修改我的脚本?不幸的是,我不懂四元数和向量的数学运算,我有点困惑。

最佳答案

你可以再追加一个轮换:

var rotation = Quaternion.LookRotation(lookPos) * Quaternion.AngleAxis(-90, Vector3.up);

关于c# - 如何将一个物体的局部轴旋转到另一个物体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33518204/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com