Esempio n. 1
0
        public void Initialize(NodeEditor parent)
        {
            _parent = parent;
            _parent.UpdateShader();

            if (_initialized)
                return;

            _previewCamera = EditorUtility.CreateGameObjectWithHideFlags("RenderPreviewCamera", HideFlags.HideAndDontSave, new[] { typeof(Camera) }).GetComponent<Camera>();
            _previewCamera.enabled = false;
            _previewCamera.clearFlags = CameraClearFlags.Color;
            _previewCamera.backgroundColor = new Color(0.15f, 0.15f, 0.15f, 1.0f);
            _previewCamera.fieldOfView = 30.0f;
            _previewCamera.renderingPath = RenderingPath.DeferredLighting;

            var lights = new List<Light>();
            for (var i = 0; i < 2; i++)
            {
                var l = EditorUtility.CreateGameObjectWithHideFlags("PreRenderLight", HideFlags.HideAndDontSave, new[] { typeof(Light) }).GetComponent<Light>();
                l.type = LightType.Directional;
                l.intensity = 0.5f;
                l.enabled = false;
                lights.Add(l);
            }

            lights[0].color = Color.grey;
            lights[0].intensity = 0.8f;
            lights[0].transform.rotation = Quaternion.Euler(50f, 50f, 0f);
            lights[1].color = new Color(0.4f, 0.4f, 0.45f, 0f) * 0.7f;
            lights[1].intensity = 0.8f;
            lights[1].transform.rotation = Quaternion.Euler(340f, 218f, 177f);

            _previewLights = lights;

               // Object.DontDestroyOnLoad(_previewCamera);
               // Object.DontDestroyOnLoad(lights[0]);
               // Object.DontDestroyOnLoad(lights[1]);

            _hotControlHash = new GUIContent("GUIPREVIEWTEXTURE");
            _previewMaterial = null;

            var go = GameObject.CreatePrimitive(PrimitiveType.Sphere);
            _previewMesh = go.GetComponent<MeshFilter>().sharedMesh;
              //  GameObject.DestroyImmediate(go);

            _initialized = true;
            UpdatePreviewTexture();
        }