【问题标题】:Return an object to its original rotation and height unity C#将对象返回到其原始旋转和高度统一 C#
【发布时间】:2013-08-06 15:55:10
【问题描述】:

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

它的移动方式:

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

它的转动方式:

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

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

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

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

船有一个刚体和一个Mesh Collider

【问题讨论】:

    标签: c# unity3d physics


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-03
      • 1970-01-01
      • 1970-01-01
      • 2011-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多