Ejemplo n.º 1
0
        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 < lightingScenariosScenes.arraySize; i++)
                {
                    lightingScenesNames.GetArrayElementAtIndex(i).stringValue = lightingScenariosScenes.GetArrayElementAtIndex(i).objectReferenceValue == null ? "" : lightingScenariosScenes.GetArrayElementAtIndex(i).objectReferenceValue.name;
                }
                serializedObject.ApplyModifiedProperties();
            }
            EditorGUILayout.PropertyField(allowLoadingLightingScenes, allowLoading);
            EditorGUILayout.PropertyField(applyLightmapScaleAndOffset);

            serializedObject.ApplyModifiedProperties();

            EditorGUILayout.Space();

            for (int i = 0; i < lightmapData.lightingScenariosScenes.Count; i++)
            {
                EditorGUILayout.BeginHorizontal();
                if (lightmapData.lightingScenariosScenes[i] != null)
                {
                    EditorGUILayout.LabelField(lightmapData.lightingScenariosScenes[i].name.ToString(), EditorStyles.boldLabel);
                    if (GUILayout.Button("Build "))
                    {
                        if (UnityEditor.Lightmapping.giWorkflowMode != UnityEditor.Lightmapping.GIWorkflowMode.OnDemand)
                        {
                            Debug.LogError("ExtractLightmapData requires that you have baked you lightmaps and Auto mode is disabled.");
                        }
                        else
                        {
                            BuildLightingScenario(i, lightmapData);
                        }
                    }
                    if (GUILayout.Button("Store "))
                    {
                        lightmapData.StoreLightmapInfos(i);
                    }
                    if (GUILayout.Button("Load "))
                    {
                        lightmapData.LoadLightingScenario(i);
                    }
                }
                EditorGUILayout.EndHorizontal();
            }
        }