public bool AddCollisionObject(BCollisionObject co) { if (co is BRigidBody) { return(AddRigidBody((BRigidBody)co)); } if (co is BSoftBody) { return(AddSoftBody((BSoftBody)co)); } if (!_isDisposed) { if (debugType >= BDebug.DebugType.Debug) { Debug.LogFormat("Adding collision object {0} to world", co); } if (co._BuildCollisionObject()) { m_world.AddCollisionObject(co.GetCollisionObject(), co.groupsIBelongTo, co.collisionMask); co.isInWorld = true; if (ghostPairCallback == null && co is BGhostObject && world is DynamicsWorld) { ghostPairCallback = new GhostPairCallback(); ((DynamicsWorld)world).PairCache.SetInternalGhostPairCallback(ghostPairCallback); } if (co is BCharacterController && world is DynamicsWorld) { AddAction(((BCharacterController)co).GetKinematicCharacterController()); } } return(true); } return(false); }
public void RegisterCollisionCallbackListener(BCollisionObject.BICollisionCallbackEventHandler toBeAdded) { if (lateUpdateHelper != null) lateUpdateHelper.RegisterCollisionCallbackListener(toBeAdded); }
public void RegisterCollisionCallbackListener(BCollisionObject.BICollisionCallbackEventHandler toBeAdded) { collisionCallbackListeners.Add(toBeAdded); }
public bool AddCollisionObject(BCollisionObject co) { if (!_isDisposed) { if (debugType >= BDebug.DebugType.Debug) Debug.LogFormat("Adding collision object {0} to world", co); if (co._BuildCollisionObject()) { m_world.AddCollisionObject(co.GetCollisionObject(), co.groupsIBelongTo, co.collisionMask); co.isInWorld = true; if (ghostPairCallback == null && co is BGhostObject && world is DynamicsWorld) { ghostPairCallback = new GhostPairCallback(); ((DynamicsWorld)world).PairCache.SetInternalGhostPairCallback(ghostPairCallback); } if (co is BCharacterController && world is DynamicsWorld) { AddAction(((BCharacterController)co).GetKinematicCharacterController()); } } return true; } return false; }
public void DeregisterCollisionCallbackListener(BCollisionObject.BICollisionCallbackEventHandler toBeRemoved) { collisionCallbackListeners.Remove(toBeRemoved); }
public void RegisterCollisionCallbackListener(BCollisionObject.BICollisionCallbackEventHandler toBeAdded) { if (m_collisionEventHandler != null) m_collisionEventHandler.RegisterCollisionCallbackListener(toBeAdded); }
public void DeregisterCollisionCallbackListener(BCollisionObject.BICollisionCallbackEventHandler toBeRemoved) { if (m_collisionEventHandler != null) m_collisionEventHandler.DeregisterCollisionCallbackListener(toBeRemoved); }