旋转对象以面向相反方向

时间:2016-09-22 12:22:01

标签: unity3d vector rotation direction

我有一个物体A和B.当我点击物体B时,A旋转到物体B(A面B)。 B不面对A.我需要做的是: 当A面对B时,我需要A面向相反的方向。我有A旋转的代码来看B.在那之后如何旋转以面向相反的方向?

Vector3 targetDirection = target - transform.position;
float step = speed * Time.deltaTime;
Vector3 newDirection = Vector3.RotateTowards (turretDome.transform.forward, targetDirection, step, 0.0F);
turretDome.transform.rotation = Quaternion.LookRotation (newDirection);

1 个答案:

答案 0 :(得分:3)

你说对象A已经面向对象B了,你想要做的就是在那之后反转对象A的方向吗?

objectA.transform.rotation = Quaternion.Inverse(objectA.transform.rotation)

但是让我们假设你的例子中turretDome是对象A,那么你可以这样做(否定方向):

turretDome.transform.rotation = Quaternion.LookRotation (-newDirection);

当然,这两个片段都没有显示如何平滑旋转,因为您似乎已经知道如何使用time.deltaTime。

只是因为你不确定,Quaternion.Lerp会帮助你做到这一点