【问题标题】: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);

【问题讨论】:

    标签: unity3d vector rotation direction


    【解决方案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 会帮助您做到这一点

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-24
      • 1970-01-01
      • 1970-01-01
      • 2014-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多