假设有一个变换称为 P,它的子变换称为 C,世界上有一个随机点称为 K。我想旋转 P,使 C 的位置变得等于或最接近 K。我该怎么做?我搜索了四元数、LookAt、Inverse 等,但没有成功。
假设C一开始就已经在Ks位置,你可以在P和C之间添加一个空物体B,它总是具有P的逆旋转。 B 所需的代码是
// in Update() method
// parent is the transform of P
transform.localRotation = Quaternion.Inverse(parent.localRotation);
如果您希望 C 仍然复制 P 的旋转,您可以在其
Update()
方法中添加类似的行,在其中将 Cs 局部旋转设置为等于 Ps。
最后,如果一般情况下 K 应该不受 Ps 变换的影响,我建议您将 C 作为 P 的子级删除并将其放在层次结构中的旁边。