示例#1
0
        private void Dispose(bool disposeManaged)
        {
            if (m_disposed)
            {
                return;
            }

            if (disposeManaged)
            {
                m_bodyShape.Dispose();

                for (var i = 0; i < m_wheelShapes.Length; i++)
                {
                    m_wheelShapes[i].Dispose();
                    m_wheelLines[i].Dispose();
                }
            }

            m_physicsManager.PreStep  -= ApplyAcceleration;
            m_physicsManager.PostStep -= PhysicsPostStep;

            for (var i = 0; i < m_wheelShapes.Length; i++)
            {
                m_wheelBodies[i].OnCollision -= WheelInitialCollision;
                m_physicsManager.World.RemoveJoint(m_wheelJoints[i]);
                m_physicsManager.World.RemoveBody(m_wheelBodies[i]);
            }
            m_physicsManager.World.RemoveBody(m_bodyBody);

            m_disposed = true;
        }