我想让我的船模仿真中的船旋转并在所有轴上移动。然而,我对船的运动进行编程的方式使得这不可能。
它的移动方式:
this.transform.Translate(Vector3.left * Time.smoothDeltaTime * speed);
它的转变方式:
this.transform.Rotate(Vector3.forward * Time.smoothDeltaTime * (int)horizontal)
船的形状也使得它不可能简单地在坚固的基座上移动,因为它具有三角形形状(用于水下碰撞)。
所以我想做的是让船受到重力的影响,但仍漂浮在水面上。然后,当船撞到某物时,它需要能够“滚动”然后最终返回其正常位置。
那么,是否有任何方法可以使物体在撞击物体后缓慢返回其正常旋转(z旋转0),并且一旦达到某个高度就不会受到重力的影响。 (Y值为34.75)
船上有 Rigidbody 和网格对撞机
答案 0 :(得分:2)
我不确定玩家是否能够在被击中时移动,但您可以将当前值保存到局部变量(例如:Transform transformOnHit
)。完成滚动后,您可以使用自己提供的代码进行转换并旋转回原始转换。