在代码中将Rigidbody2D体型设置为“静态”?

时间:2016-12-21 13:48:04

标签: c# unity3d

我最近更新了我的Unity(从5.4.1f1升级到5.5.0f3),现在我似乎在我的一个游戏中遇到了一些Rigidbody2D的问题。

所以基本上我习惯使用这段代码来使我的gameobject(播放器)非难以处理并从物理控件中取出:

Player.GetComponent<Rigidbody2D>().isKinematic = true;

在更新Unity之后,这种方法无法正常工作,并且在将播放器设置为运动时,它会保持与“动态”(但无法控制)时相同的方向移动。注意:Unity 5.4.1f1中不是这种情况。

所以我进入了Rigidbody2D组件并注意到它已经改变了。 How my old Rigidbody2D looked likeHow my new RigidBody2D looks like now

“运动学”选项被移动到“体型”选项中,并且在运行时它确实使用“.isKinematic = true”字符串将体型更改为运动学(但它如前所述不能正常工作)。 / p>

所以我尝试将体型值改为“静态”,手动进行符文时间,注意到它完美无缺!

所以我的问题是:如何在代码中将正文类型更改为静态? (比如“isKinematic”),以及Rigidbody2D(和运动学)的变化发生了什么?

1 个答案:

答案 0 :(得分:1)

Rigidbody上的bodyType property可能就是你要找的东西:

Player.GetComponent<Rigidbody2D>().bodyType = RigidbodyType2D.Static;

值得一提的是,如果在Unity的次要版本之间进行更新会破坏它,那么其他可能会出错,但如果没有看到更多的项目,我肯定不会知道。