【发布时间】:2012-11-28 18:23:46
【问题描述】:
我已经在这个问题上徘徊了一段时间,但我一直没有弄清楚这一点。
问题:
目前正在尝试做一个假的“摇摆”时刻。我让玩家对象成为您可以在按键期间锁定的对象的子对象。
考虑到这一点,我需要在 grappleobject 上获得正确的旋转,使玩家的速度成为 grappleobject 上的正确旋转。
这不是 2D,而是 3D。这导致了这种头痛。
http://img843.imageshack.us/img843/7434/rotations.jpg
我想如果我能得到位置向量和玩家前进方向的向量,比如角色马达的速度,得到一个唯一的向量,这个向量信息应该能够正确旋转抓斗对象。
然而,我认为这很容易,但我已经研究了好几个小时才得到向量差来按照预期进行旋转。
tl:dr
2个向量,这两个向量的差为一个向量,这个向量控制抓斗物体的旋转,以适当的速度“假”一个摆动动作。
如果有答案,请提前感谢您。
添加信息:
目前的测试是这些。
///
父球体是根据触发事件更新其变换的抓斗对象。
CurDirection 是玩家在世界矢量中前进的方向。
CurPos 是玩家在世界中那个时间点的位置。
CurDirection = (transform.position-ParentOrb.position);
CurDirection.Normalize();
motor.movement.velocity = (CurDirection);
CurPos = transform.position;
////
还尝试获取从抓斗对象到玩家的角度。
///
otherDirection = 空间中的速度方向。
OtherDirectionPre = 当前空间位置。
Vector3 targetDir = otherDirection;
Vector3 forward = otherDirectionPre;
angle = Vector3.Angle(targetDir, forward);
/// 我认为这些可能没有帮助,但更好地展示我到目前为止的进展。
【问题讨论】:
标签: c# parent-child unity3d