Beispiel #1
0
        // Define components
        void SetComponentsPhysics()
        {
            // Excluded from simulation
            if (physics.exclude == true)
            {
                return;
            }

            // Physics components
            physics.rigidBody    = GetComponent <Rigidbody>();
            physics.meshCollider = GetComponent <Collider>();

            // Mesh Set collider
            if (objectType == ObjectType.Mesh)
            {
                RFPhysic.SetMeshCollider(this);
            }

            // Cluster check
            if (objectType == ObjectType.NestedCluster || objectType == ObjectType.ConnectedCluster)
            {
                Clusterize();
            }

            // Rigid body
            if (simulationType != SimType.Static && physics.rigidBody == null)
            {
                physics.rigidBody = gameObject.AddComponent <Rigidbody>();
                physics.rigidBody.collisionDetectionMode = RayfireMan.inst.collisionDetection;
            }
        }
Beispiel #2
0
        // Define components
        void SetComponentsPhysics()
        {
            // Excluded from simulation
            if (physics.exclude == true)
            {
                return;
            }

            // Physics components
            physics.rigidBody    = GetComponent <Rigidbody>();
            physics.meshCollider = GetComponent <Collider>();

            // Mesh Set collider
            if (objectType == ObjectType.Mesh)
            {
                RFPhysic.SetMeshCollider(this);
            }

            // Cluster check TODO EXPOSE IN UI !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
            if (objectType == ObjectType.NestedCluster || objectType == ObjectType.ConnectedCluster)
            {
                // No children mesh for clustering
                bool clusteringState = RFDemolitionCluster.Clusterize(this);
                if (clusteringState == false)
                {
                    physics.exclude = true;
                    Debug.Log("RayFire Rigid: " + name + " has no children with mesh. Object Excluded from simulation.", gameObject);
                    return;
                }
            }

            // Rigid body
            if (simulationType != SimType.Static && physics.rigidBody == null)
            {
                physics.rigidBody = gameObject.AddComponent <Rigidbody>();
                physics.rigidBody.collisionDetectionMode = CollisionDetectionMode.ContinuousDynamic;
            }
        }