public static GameObject CreateDclPrimitive(DclPrimitiveType type, bool withCollider = true, bool putOnFocusPosition = true) { GameObject gameObject = new GameObject(type.ToString()); gameObject.AddComponent <MeshFilter>(); if (putOnFocusPosition) { gameObject.transform.position = SceneView.lastActiveSceneView.pivot; Selection.objects = new Object[] { gameObject }; EditorUtility.SetDirty(gameObject); EditorSceneManager.MarkSceneDirty(gameObject.scene); } var meshRenderer = gameObject.AddComponent <MeshRenderer>(); meshRenderer.sharedMaterial = PrimitiveHelper.GetDefaultMaterial(); var dclObj = gameObject.AddComponent <DclObject>(); dclObj.withCollision = withCollider; dclObj.dclPrimitiveType = type; SetDclPrimitiveMesh(dclObj, dclObj.dclPrimitiveType); return(gameObject); }
public static void SetDclPrimitiveMesh(DclObject dclObject, DclPrimitiveType primitiveType) { var meshFilter = dclObject.GetComponent <MeshFilter> (); switch (primitiveType) { case DclPrimitiveType.cone: { meshFilter.sharedMesh = Dcl.DclPrimitiveMeshBuilder.BuildCone(50, 0f, 1f, 2f, 0f, true, false); } break; case DclPrimitiveType.cylinder: { meshFilter.sharedMesh = Dcl.DclPrimitiveMeshBuilder.BuildCylinder(50, 1f, 1f, 2f, 0f, true, false); } break; case DclPrimitiveType.box: { meshFilter.sharedMesh = Dcl.DclPrimitiveMeshBuilder.BuildCube(1f); } break; case DclPrimitiveType.plane: { meshFilter.sharedMesh = Dcl.DclPrimitiveMeshBuilder.BuildPlane(1f); } break; case DclPrimitiveType.sphere: { meshFilter.sharedMesh = Dcl.DclPrimitiveMeshBuilder.BuildSphere(0.5f); } break; } }