Пример #1
0
        public GameObject AddGameObject(string type)
        {
            GameObject gameObject = null;

            switch (type)
            {
            case "Cube": gameObject = GameObject.CreatePrimitive(PrimitiveTypes.Cube, _defaultMaterial); break;

            case "Cylinder": gameObject = GameObject.CreatePrimitive(PrimitiveTypes.Cylinder, _defaultMaterial); break;

            case "Quad": gameObject = GameObject.CreatePrimitive(PrimitiveTypes.Quad, _defaultMaterial); break;

            case "Plane": gameObject = GameObject.CreatePrimitive(PrimitiveTypes.Plane, _defaultMaterial); break;

            case "Pyramid": gameObject = GameObject.CreatePrimitive(PrimitiveTypes.Pyramid, _defaultMaterial); break;

            case "Sphere": gameObject = GameObject.CreatePrimitive(PrimitiveTypes.Sphere, _defaultMaterial); break;

            case "Torus": gameObject = GameObject.CreatePrimitive(PrimitiveTypes.Torus, _defaultMaterial); break;

            case "Terrain":
                gameObject = GameObjectFactory.CreateTerrain();
                var terrain = gameObject.GetComponent <Terrain>();
                terrain.Flatten();
                terrain.Renderer.Material = _defaultMaterial;
                break;

            case "Water":
                gameObject = GameObjectFactory.CreateWater(TextureFactory.CreateColor(Color.AliceBlue, 1, 1), TextureFactory.CreateNoise(32), Vector3.One);
                break;

            case "Directional": gameObject = CreateLight(type, LightType.Directional); break;

            case "Point": gameObject = CreateLight(type, LightType.Point); break;

            case "Spot": gameObject = CreateLight(type, LightType.Spot); break;

            case "Camera":
                gameObject = GameObjectFactory.CreateCamera();
                var cameraRenderer = gameObject.AddComponent <EditorIconRenderer>();
                cameraRenderer.Setup("Camera_Icon");
                cameraRenderer.AddComponent <SphereCollider>();
                break;

            default: break;
            }

            gameObject.Name = type;

            AddGameObject(gameObject);

            return(gameObject);
        }