private static void GenerateCutterGameobject(GameObject originalGameObject, GeneratedMesh mesh, bool addRigidbody, Vector3 direction) { if (mesh.Vertices.Count > 3) { GameObject gameObject = new GameObject(originalGameObject.name, typeof(MeshFilter), typeof(MeshRenderer)); gameObject.transform.localRotation = originalGameObject.transform.localRotation; gameObject.transform.localScale = originalGameObject.transform.localScale; gameObject.transform.position = originalGameObject.transform.position; gameObject.GetComponent <MeshFilter>().mesh = mesh.GenerateMesh(); gameObject.GetComponent <MeshRenderer>().material = originalGameObject.GetComponent <MeshRenderer>().material; if (addRigidbody) { gameObject.AddComponent <Rigidbody>(); gameObject.GetComponent <Rigidbody>().AddTorque(direction * 200f); } gameObject.AddComponent <MeshCollider>(); gameObject.GetComponent <MeshCollider>().convex = true; } }