旋转对象以面向相反方向

Ran*_*ngo 4 vector rotation direction unity-game-engine

我有一个对象 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);
Run Code Online (Sandbox Code Playgroud)

Ria*_*ers 5

你说物体A已经面对物体B,然后你要做的就是反转物体A的方向?

objectA.transform.rotation = Quaternion.Inverse(objectA.transform.rotation)
Run Code Online (Sandbox Code Playgroud)

但是让我们从您的示例中假设 turretDome 是对象 A,然后您可以这样做(否定方向):

turretDome.transform.rotation = Quaternion.LookRotation (-newDirection);
Run Code Online (Sandbox Code Playgroud)

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

以防万一您不确定,Quaternion.Lerp 会帮助您做到这一点