Пример #1
0
        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);
        }
Пример #2
0
        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;
            }
        }