我最近更新了我的 Unity(从 5.4.1f1 更新到 5.5.0f3),现在我的一款游戏中的 Rigidbody2D 似乎出现了一些问题。
所以基本上我曾经使用这段代码来使我的游戏对象(玩家)变得不易处理并脱离物理控制:
Player.GetComponent<Rigidbody2D>().isKinematic = true;
Run Code Online (Sandbox Code Playgroud)
在 Unity 更新后,此功能无法正常工作,并且在将玩家设置为运动学后,它会继续沿与“动态”时相同的方向移动(但无法控制)。注意:Unity 5.4.1f1 中并非如此。
所以我进入 Rigidbody2D 组件并注意到它发生了变化。 我的旧 RigidBody2D 的外观以及我的新 RigidBody2D 现在的外观
“kinematic”选项已移至“body type”选项中,并且在运行时它确实使用“.isKinematic = true”字符串将主体类型更改为 Kinematic(但如前所述,它无法正常工作)。
因此,我尝试手动将主体类型值更改为“静态”,并发现效果非常好!
所以我的问题是:如何在代码中将主体类型更改为静态?(如“isKinematic”),以及 Rigidbody2D(和运动学?)的变化发生了什么?