C# 运动物体的子弹物理碰撞检测
我已经有一段时间在想这个问题了: 我有一个具有长方体形状的运动学刚体实例。我有一个静态地板对象(还有另一个长方体形状的刚体实例)。 运动学实例是应该能够移动对象的玩家对象,但其他对象不得以任何方式影响玩家对象 但是,我还希望运动学对象不要穿过墙或楼板。我知道bullet不允许运动对象检查与静态对象的碰撞。或者至少我认为不是这样 我认为我的选择是:C# 运动物体的子弹物理碰撞检测,c#,bulletphysics,C#,Bulletphysics,我已经有一段时间在想这个问题了: 我有一个具有长方体形状的运动学刚体实例。我有一个静态地板对象(还有另一个长方体形状的刚体实例)。 运动学实例是应该能够移动对象的玩家对象,但其他对象不得以任何方式影响玩家对象 但是,我还希望运动学对象不要穿过墙或楼板。我知道bullet不允许运动对象检查与静态对象的碰撞。或者至少我认为不是这样 我认为我的选择是: 创建始终随运动学对象移动并检查碰撞的重影对象。我尝试过这样做,但每当我将重影对象的位置更新到其父对象的位置时,就会出现严重的性能问题。由于某种原因,幽
第二部分不清楚为什么摩擦不起作用。摩擦力是否适用于其他受重力影响的物体,或者它们是否也在斜坡上滑动?嘿,谢谢你的回答。我会试试这个,然后尽快给你回复!我试过你的方法。玩家的质量为5000,其他物品的质量在1到50之间。当按下“d”键时,我通过将线速度设置为(5 | 0 | 0)来移动播放器。这会相应地移动玩家对象,但释放“d”键后,玩家对象仍会移动一点。我猜这是因为速度随着时间慢慢减小。地板和玩家对象的摩擦力值均为0。我知道这种行为在物理上是正确的,因为两帧之间的速度不会为零。我想我必须手动将速度设置为0,然后。。。。这就导致了你上面提到的浮动行为,对吗?顺便问一下,为什么你的地板摩擦力为0?它应该始终大于0。当你按下WASD时,你的球员身体应该将摩擦力设置为0。当你释放WASD时,你的身体应该将摩擦力设置回1,这肯定会阻止你的角色在摩擦力设置为1的地板上滑动。啊,我的错。我的意思是两者的摩擦力都是1。很抱歉我知道这很难,因为我想使用物理引擎,但我不想所有对象都表现得逼真;)