旋转对象以面对相反的方向

Posted

技术标签:

【中文标题】旋转对象以面对相反的方向【英文标题】:Rotate an object to face an opposite direction 【发布时间】:2016-09-22 12:22:01 【问题描述】:

我有一个对象 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】:

你说对象A已经面对对象B了,你想要做的只是将对象A的方向反转?

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

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

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

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

如果您不确定,Quaternion.Lerp 会帮助您做到这一点

【讨论】:

以上是关于旋转对象以面对相反的方向的主要内容,如果未能解决你的问题,请参考以下文章

使用指南针方向旋转 MapView

在保持对齐的同时以相反的方向旋转 div 和文本?

As3 如何翻转影片剪辑以面对运动方向?

OpenGL模拟波斯王子相机

OpenGL:沿该方向旋转和移动

横向旋转后推送方向变化