Aim: I'm developing a turn-based game that heavily relies on Unity 2D physics, which are a port from Box2D. It's important for me that all bodies go to sleep as soon as they stop moving, because I'm waiting for that to start next turn.
Issue: Unfortunately, it happens quite often that bodies never go to sleep. I tried tweaking Physics2D settings for days, thus improving stability and/or performances, but this issue still occurred. I figured out that this problem is related to HingeJoint2D: when they try to enforce a constraint (both angle limits or motor force), they won't allow their connected bodies to sleep.
I also tried to manually set really slow moving bodies to sleep, but (and this sounds quite weird to me) it seems that calling .Sleep() on a body causes other bodies to wake up, thus preventing the whole world to ever be able to fall asleep.
Question: Is anybody facing a similar situation? Any clue or workaround on how to solve it? Thanks!
Discuss issues specific to the C#/XNA ports of Box2D
1 post • Page 1 of 1
Who is online
Users browsing this forum: No registered users and 2 guests