/// <summary> /// Create the mesh /// </summary> void CreateMesh() { for (int i = 0; i < curveDatas.Count; i++) { if (curveMeshes.Count > i) { curveMeshes[i].CreateMesh(); } else { var curveMesh = BezierCurveMesh.Instantiate(i, this); curveMeshes.Insert(i, curveMesh); curveMesh.CreateMesh(); } } }
/// <summary> /// Create a instance of itself with all required components /// </summary> /// <param name="type"></param> /// <param name="curveMesh"></param> /// <returns></returns> public static BezierCurveMeshPlane Instantiate(types type, BezierCurveMesh curveMesh) { var planeObject = new GameObject(); planeObject.name = "Plane" + type; planeObject.transform.SetParent(curveMesh.transform); planeObject.AddComponent <MeshFilter>(); planeObject.AddComponent <MeshRenderer>(); // planeObject.AddComponent<MeshCollider>(); // planeObject.AddComponent<Rigidbody>().isKinematic = true; var planeMesh = planeObject.AddComponent <BezierCurveMeshPlane>(); planeMesh.type = type; planeMesh.curveMesh = curveMesh; return(planeMesh); }