// 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; } }
// 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; } }