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