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(); }