Tag: 刚体

RigidBody2D冻结X位置

我想知道是否有一种方法可以使用Unity的RigidBody2D模拟以下代码行,而不是使用普通的RigidBody。 rigidbody.constraints = RigidbodyConstraints.FreezePositionX; 我希望我的球员x位置在碰到某些东西时冻结。 虽然我可以使用上述内容,但我需要将所有2D碰撞重新设计为3D碰撞。 我宁愿避免的痛苦。

以x秒为单位预测刚体对象的位置

假设你有一个移动的Rigidbody对象。 Force通过Rigidbody.AddForce或Rigidbody.velocity添加到此Object。 对象可以滚动命中另一个对象并改变方向。 我知道外推,但在这种情况下,几乎不可能使用一些公式来获得x秒内物体的位置,因为物体可以击中另一个物体并改变过程中的速度/方向。 Unity 2017引入了Physics.autoSimulation和Physics.Simulate来解决这个问题。 对于2D物理学,即Physics2D.autoSimulation和Physics2D.Simulate 。 我所做的只是将Physics.autoSimulation设置为false然后调用Physics.Simulate函数。 在我的例子中,我想知道在为它添加力之后4秒内Rigidbody会在哪里,它似乎在1秒的小秒内工作正常。 问题是,当我传递大于5和更高的数字时,对于Simulate函数,预测位置不准确。 离开的路还很远。 为什么会发生这种情况,我该如何解决? Android设备上的这个问题更严重。 我目前的Unity版本是Unity 2017.2.0b5 。 下面是我正在使用的示例代码。 guide GameObject仅用于显示/显示预测位置的位置。 public GameObject bulletPrefab; public float forceSpeed = 50; public GameObject guide; // Use this for initialization IEnumerator Start() { //Disable Physics AutoSimulation Physics.autoSimulation = false; //Wait for game to start in the editor before moving […]