2013-08-06 32 views
1

我想允许一艘船在我的3D模拟船上旋转并在所有轴上移动。然而,我将船的运动编程的方式使得这是不可能的。将一个物体返回到原来的旋转和高度单位C#

的方式,移动:

this.transform.Translate(Vector3.left * Time.smoothDeltaTime * speed); 

它关闭的方法:

this.transform.Rotate(Vector3.forward * Time.smoothDeltaTime * (int)horizontal) 

船的形状也使得它不可能简单地将它在一个坚实的基础,因为它确实有三角形(用于水下碰撞)。

所以我想要做的是让船受重力影响,但仍漂浮在水面上。然后,当船碰到什么东西时,它需要能够“滚动”,然后最终返回到正常位置。

那么,有没有什么办法让物体在碰到物体后缓慢地恢复到正常的旋转(z轴旋转0度),一旦物体达到一定的高度,就不会受到重力的影响。 (34.75 Y值)

船上有刚体网撞机

回答

2

我不知道,如果玩家将能够移动时,他被击中,但你可以保存当前值到局部变量(例如:Transform transformOnHit)。完成滚动后,您可以使用自己提供的代码翻译并旋转回原始变换。

相关问题