public static void CreateNewRope(Vector3 localPosition, GameObject parent = null, uint segments = 5, float length = 5) { // Create the top level object (anchor-point) GameObject ropeEmpty = new GameObject("Rope"); if (parent) { ropeEmpty.transform.parent = parent.transform; ropeEmpty.transform.localPosition = localPosition; } else { ropeEmpty.transform.position = localPosition; } // Add a RopeController script RopeController ropeController = ropeEmpty.AddComponent <RopeController>(); ropeController._firstSegment = ropeEmpty; // Add a rigidbody ropeController._rigidbody = ropeEmpty.AddComponent <Rigidbody>(); ropeController._rigidbody.isKinematic = true; // Generate new segments ropeController.AddSegments(segments, length); // Load rope material ropeController._ropeMaterial = Resources.Load <Material>("Materials/RopeMaterial"); }