1

我在 Unity (C#) 中有一个空间模型,这个模型是跳伞。它始终面向地面,但 X 和 Z 旋转。我想要的效果是,当我旋转时,而不是围绕模型中心旋转,我围绕一个点直接旋转到模型左侧或右侧的设定距离,具体取决于模型。我已经有了旋转逻辑,但我没有的是如何确定“向右 X 像素”的世界位置,因为旋转会改变左/右。例如:

当我开始时,左边是-1,0;右边是 +1,0 x 我向左旋转 45 度。左边仍然是-1,0。但现在我的位置是 (~) -.7,.7。而且由于我的“左”仍然指向-1,0,“右突然指向(〜)0,1.4

那么,在给定模型的 Vector3 位置、模型的 X、Z 旋转和偏移量的情况下,我如何确定“向左”和“向右”的位置。

对于这些视觉类型,Just Cause 2 做得对(尽管有时很难说):http: //youtu.be/C6H3PPfx1KI ?t=2m

感谢大家。

4

1 回答 1

2

听起来您只想执行以下操作:

  1. 在模型空间中分配左/右坐标left = (-1, 0, 0)right = (1, 0, 0)
  2. 将旋转点从模型空间转换到世界空间(例如worldLeft = transform.TransformPoint(left))。
  3. 围绕世界空间点 ( transform.RotateAround(worldLeft, Vector3.up, speed * Time.deltaTime)) 旋转。
于 2012-11-15T19:40:38.387 回答