1

我想在我的船的 3D 模拟中允许船在所有轴上旋转和移动。然而,我对船的运动进行编程的方式使这成为不可能。

它的移动方式:

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

它的转动方式:

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

船的形状也使得它不可能简单地在坚固的底座上移动,因为它确实具有三角形形状(用于水下碰撞)。

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

那么,有没有什么办法可以让物体在撞到东西后慢慢恢复正常旋转(z旋转为0),一旦达到一定高度就不受重力影响。(Y 值为 34.75)

这艘船有一个刚体和一个网格碰撞器

4

1 回答 1

2

我不确定玩家在被击中时是否能够移动,但您可以将当前值保存到局部变量(例如:)Transform transformOnHit。完成滚动后,您可以使用自己提供的代码来平移和旋转回原始变换。

于 2013-08-07T08:07:27.400 回答