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 CollisionObject AgregarTorreta(Torreta torreta, TGCVector3 size) { CollisionObject torretaCollision = CrearCollisionObject(size); collisionWorld.AddCollisionObject(torretaCollision); listaTorretas.Add(torretaIdCount, torreta); torretaCollision.UserIndex = torretaIdCount; torretaIdCount += 2; return(torretaCollision); }