Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }