void SaveData(LevelConfigurationData levelConfigurationData) { EditorUtility.SetDirty(levelConfigurationData); AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); }
public override void OnInspectorGUI() { PopulateGrid(); LevelConfigurationData t = (LevelConfigurationData)target; GUILayout.Label("Level Configuration", EditorStyles.boldLabel); EditorGUILayout.BeginVertical("Box"); { GUILayout.Label("Pot Settings"); m_PotSelectedIndex = t.selectedPot; m_PotSelectedIndex = GUILayout.SelectionGrid(m_PotSelectedIndex, m_PotGridImages, 13, GUILayout.MaxHeight(256)); GUILayout.Space(10f); EditorGUI.indentLevel += 1; EditorGUI.BeginDisabledGroup(true); t.potPosition = EditorGUILayout.Vector3Field( "Position", m_PositionValues[m_PotSelectedIndex]) + m_PotOffset; EditorGUI.EndDisabledGroup(); t.radius = EditorGUILayout.Slider("Radius", t.radius, 0.5f, 5); t.isMoving = EditorGUILayout.Toggle("Is Moving", t.isMoving); if (t.isMoving) { EditorGUI.indentLevel += 1; t.potSpeed = EditorGUILayout.FloatField("Speed", t.potSpeed); t.initialPosition = EditorGUILayout.Vector3Field("Initial Position", t.initialPosition); t.initialPosition = EditorGUILayout.Vector3Field("Final Position", t.finalPosition); } t.selectedPot = m_PotSelectedIndex; } EditorGUILayout.EndVertical(); GUILayout.Space(10f); EditorGUILayout.BeginVertical("Box"); { GUILayout.Label("Fan Settings"); m_FanSelectedIndex = t.selectedFan; m_FanSelectedIndex = GUILayout.SelectionGrid(m_FanSelectedIndex, m_FanGridImages, 13, GUILayout.MaxHeight(256)); GUILayout.Space(10f); EditorGUI.BeginDisabledGroup(true); t.fanPosition = EditorGUILayout.Vector3Field( "Position", m_PositionValues[m_FanSelectedIndex]); EditorGUI.EndDisabledGroup(); t.fanHeading = EditorGUILayout.Vector3Field("Heading", t.fanHeading); t.fanForce = EditorGUILayout.FloatField("Force", t.fanForce); t.isRotating = EditorGUILayout.Toggle("Is Rotating", t.isRotating); t.fanUIPos = EditorGUILayout.Vector3Field("Fan UI Position", t.fanUIPos); if (t.isRotating) { EditorGUI.indentLevel += 1; t.rotationSpeed = EditorGUILayout.FloatField("Speed", t.rotationSpeed); t.initialHeading = EditorGUILayout.Vector3Field("Initial Heading", t.initialHeading); t.finalHeading = EditorGUILayout.Vector3Field("Final Heading", t.finalHeading); } t.selectedFan = m_FanSelectedIndex; } EditorGUILayout.EndVertical(); GUILayout.Space(10f); EditorGUILayout.BeginVertical("Box"); { GUILayout.Label("Obstacles"); GUILayout.Space(10f); foreach (var obstacle in t.obstacles) { EditorGUILayout.BeginVertical(); obstacle.prefab = EditorGUILayout.ObjectField("Obstacle prefab", obstacle.prefab, typeof(GameObject), false) as GameObject; obstacle.position = EditorGUILayout.Vector3Field("Position", obstacle.position); obstacle.scale = EditorGUILayout.Vector3Field("Scale", obstacle.scale); if (GUILayout.Button("Remove Obstacle")) { t.obstacles.Remove(obstacle); return; } EditorGUILayout.EndVertical(); GUILayout.Space(10f); } if (GUILayout.Button("New Obstacle")) { t.obstacles.Add(new Obstacle()); } } EditorGUILayout.EndVertical(); if (GUI.changed) { SaveData(t); } }