我最近更新了我的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 like和How my new RigidBody2D looks like now
“运动学”选项被移动到“体型”选项中,并且在运行时它确实使用“.isKinematic = true”字符串将体型更改为运动学(但它如前所述不能正常工作)。 / p>
所以我尝试将体型值改为“静态”,手动进行符文时间,注意到它完美无缺!
所以我的问题是:如何在代码中将正文类型更改为静态? (比如“isKinematic”),以及Rigidbody2D(和运动学)的变化发生了什么?
答案 0 :(得分:1)
Rigidbody上的bodyType property可能就是你要找的东西:
Player.GetComponent<Rigidbody2D>().bodyType = RigidbodyType2D.Static;
值得一提的是,如果在Unity的次要版本之间进行更新会破坏它,那么其他可能会出错,但如果没有看到更多的项目,我肯定不会知道。