using UnityEngine; using UnityEngine.SceneManagement; using UnityEditor; using UnityEditor.SceneManagement; using System.Collections; using Unity.EditorCoroutines.Editor; [CustomEditor(typeof(LevelLightmapData))] public class LevelLightmapDataEditor : Editor { public SerializedProperty lightingScenariosScenes; public SerializedProperty lightingScenesNames; public SerializedProperty allowLoadingLightingScenes; GUIContent allowLoading = new GUIContent("Allow loading Lighting Scenes", "Allow the Level Lightmap Data script to load a lighting scene additively at runtime if the lighting scenario contains realtime lights."); public void OnEnable() { lightingScenariosScenes = serializedObject.FindProperty("lightingScenariosScenes"); lightingScenesNames = serializedObject.FindProperty("lightingScenesNames"); allowLoadingLightingScenes = serializedObject.FindProperty("allowLoadingLightingScenes"); } public override void OnInspectorGUI() { serializedObject.Update(); LevelLightmapData lightmapData = (LevelLightmapData)target; EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(lightingScenariosScenes, new GUIContent("Lighting Scenarios Scenes"), includeChildren:true); if (EditorGUI.EndChangeCheck()) { serializedObject.ApplyModifiedProperties(); lightingScenesNames.arraySize = lightingScenariosScenes.arraySize; for (int i=0; i(); var reflectionProbes = FindObjectsOfType(); foreach (Light light in lights) { if (light.lightmapBakeType == LightmapBakeType.Mixed || light.lightmapBakeType == LightmapBakeType.Realtime) latestBuildHasRealtimeLights = true; } if (reflectionProbes.Length > 0) latestBuildHasRealtimeLights = true; levelLightmapData.latestBuildHasReltimeLights = latestBuildHasRealtimeLights; } }