private void DrawValueSettings(UpgradeValueSettings valueSettings, int index) { if (valueSettings == null) { return; } EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField(index.ToString()); if (GUILayout.Button("X", GUILayout.MaxWidth(24))) { UpgradesUtility.RemoveValueSettings(valueSettings); UpgradesUtility.RemoveMissingValueSettings(); return; } EditorGUILayout.EndHorizontal(); SerializedObject serializedObject = new SerializedObject(valueSettings); serializedObject.Update(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.PropertyField(serializedObject.FindProperty("valueName")); EditorGUILayout.PropertyField(serializedObject.FindProperty("prefix")); EditorGUILayout.PropertyField(serializedObject.FindProperty("suffix")); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); var existingType = valueSettings.ValueProgression.GetType() == typeof(ArithmeticProgression) ? ProgressionType.Arithmetic : ProgressionType.Geometric; progressionType = existingType; SerializedObject serializedProgression = new SerializedObject(valueSettings.ValueProgression); serializedProgression.Update(); DrawDefaultInspector(serializedProgression); serializedProgression.ApplyModifiedProperties(); progressionType = (ProgressionType)EditorGUILayout.EnumPopup(progressionType); if (existingType != progressionType) { UpgradesUtility.ChangeProgressionType(valueSettings, progressionType); } EditorGUILayout.EndHorizontal(); serializedObject.ApplyModifiedProperties(); }
public void Setup(UpgradeValueSettings settings) { valueNameText.text = settings.ValueName; valueText.text = settings.ValueString; valueProgressText.text = settings.ProgressString; }