static Scene CreateDefaultPreviewScene()
        {
            Scene previewScene = EditorSceneManager.NewPreviewScene();

            // Setup default render settings for this preview scene
            Unsupported.SetOverrideLightingSettings(previewScene);
            UnityEngine.RenderSettings.defaultReflectionMode   = UnityEngine.Rendering.DefaultReflectionMode.Custom;
            UnityEngine.RenderSettings.customReflectionTexture = GetDefaultReflection();   // ensure chrome materials do not render black
            UnityEngine.RenderSettings.skybox      = AssetDatabase.GetBuiltinExtraResource <Material>("Default-Skybox.mat");
            UnityEngine.RenderSettings.ambientMode = AmbientMode.Skybox;
            UnityEditorInternal.InternalEditorUtility.CalculateAmbientProbeFromSkybox();
            Unsupported.RestoreOverrideLightingSettings();

            return(previewScene);
        }
        static Scene CreateDefaultPreviewScene()
        {
            Scene previewScene = EditorSceneManager.NewPreviewScene();

            Unsupported.SetOverrideLightingSettings(previewScene);

            // Setup default render settings for this preview scene
            UnityEngine.RenderSettings.defaultReflectionMode = UnityEngine.Rendering.DefaultReflectionMode.Custom;
            UnityEngine.RenderSettings.customReflection      = GetDefaultReflection(); // ensure chrome materials do not render balck
            UnityEngine.RenderSettings.skybox      = null;                             // do not use skybox for the default previewscene, we want the flat Prefab Mode background color to let it stand out from normal scenes
            UnityEngine.RenderSettings.ambientMode = AmbientMode.Trilight;             // do not use skybox ambient but simple trilight ambient for simplicity
            Unsupported.RestoreOverrideLightingSettings();

            return(previewScene);
        }
예제 #3
0
    void OnGUI()
    {
        var half = position.width / 2;

        // head/body/css/js
        var rect = new Rect(half * 0.5f + 25, 0, (half - 50) / 4, 30);

        EditorGUI.BeginChangeCheck();
        for (int i = 0; i < 4; i++)
        {
            if (GUI.Toggle(rect, i == panel, Styles.heads[i], Styles.headStyles[i]))
            {
                panel = i;
            }
            rect.x += rect.width;
        }

        showPreview = GUI.Toggle(new Rect(half * 1.5f, 0, 100, 30), showPreview, "Show Preview");

        if (showPreview)
        {
            if (previwRT.width != (int)position.width || previwRT.height != (int)position.height - 30)
            {
                previwRT.Release();
                previwRT.width  = (int)position.width;
                previwRT.height = (int)position.height - 30;
                previwRT.Create();
            }

            Texture defaultEnvTexture = ReflectionProbe.defaultTexture;

            if (Unsupported.SetOverrideLightingSettings(previewScene.scene))
            {
                RenderSettings.ambientMode  = AmbientMode.Flat;
                RenderSettings.ambientLight = Color.grey;

                RenderSettings.defaultReflectionMode = UnityEngine.Rendering.DefaultReflectionMode.Custom;
                RenderSettings.customReflection      = defaultEnvTexture as Cubemap;
            }

            previewScene.camera.Render();
            EditorGUI.DrawTextureTransparent(new Rect(0, 30, position.width, position.height - 30), previwRT);
        }
        else
        {
            this[panel] = EditorGUI.TextArea(new Rect(0, 30, position.width, position.height - 30), this[panel], Styles.textArea);
        }
    }