You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
160 lines
5.2 KiB
160 lines
5.2 KiB
using UnityEngine;
|
|
using UnityEditor;
|
|
using System;
|
|
using UnityEditor.SceneManagement;
|
|
|
|
namespace UltraControls
|
|
{
|
|
[CustomEditor(typeof(UltraSetter))]
|
|
[CanEditMultipleObjects]
|
|
[Serializable]
|
|
public class UltraSetterEditor : Editor
|
|
{
|
|
private UltraSetter m_master;
|
|
public SerializedProperty m_property_is_started;
|
|
public SerializedProperty m_property_name;
|
|
public SerializedProperty m_property_identifierInFile;
|
|
public SerializedProperty m_property_auto_load;
|
|
|
|
void OnEnable()
|
|
{
|
|
if (m_master == null)
|
|
{
|
|
m_master = target as UltraSetter;
|
|
}
|
|
|
|
m_property_is_started = serializedObject.FindProperty("m_is_started");
|
|
m_property_name = serializedObject.FindProperty("m_name");
|
|
m_property_identifierInFile = serializedObject.FindProperty("m_identifierInFile");
|
|
m_property_auto_load = serializedObject.FindProperty("m_auto_load_after_finding_getter");
|
|
}
|
|
|
|
void OnDisable()
|
|
{
|
|
|
|
}
|
|
|
|
public override void OnInspectorGUI()
|
|
{
|
|
bool is_modified = m_master.UpdateIdentifierInFile();
|
|
if (is_modified)
|
|
{
|
|
EditorSceneManager.SaveScene(EditorSceneManager.GetActiveScene());
|
|
}
|
|
|
|
serializedObject.Update();
|
|
|
|
EditorGUI.BeginDisabledGroup(true);
|
|
EditorGUILayout.TextArea(m_master.filepath_settings);
|
|
EditorGUILayout.PropertyField(m_property_identifierInFile, new UnityEngine.GUIContent("IdentifierInFile"));
|
|
EditorGUI.EndDisabledGroup();
|
|
|
|
EditorGUILayout.PropertyField(m_property_is_started, new UnityEngine.GUIContent("Start"));
|
|
|
|
|
|
EditorGUI.BeginDisabledGroup(m_property_is_started.boolValue);
|
|
{
|
|
EditorGUILayout.PropertyField(m_property_name, new UnityEngine.GUIContent("Name"));
|
|
EditorGUILayout.PropertyField(m_property_auto_load, new UnityEngine.GUIContent("Auto Load"));
|
|
}
|
|
EditorGUI.EndDisabledGroup();
|
|
|
|
serializedObject.ApplyModifiedProperties();
|
|
|
|
m_master.is_start = m_property_is_started.boolValue;
|
|
|
|
if (!m_master.is_start)
|
|
{
|
|
m_master.ultracontros_name = m_property_name.stringValue;
|
|
return;
|
|
}
|
|
|
|
EditorGUILayout.Separator();
|
|
|
|
if (!Application.isPlaying)
|
|
{
|
|
m_master.UpdateByUltraSetterEditor();
|
|
}
|
|
|
|
Control[] controls = m_master.controls;
|
|
if (controls == null)
|
|
{
|
|
return;
|
|
}
|
|
|
|
bool yes = EditorGUILayout.ToggleLeft("Save Settings", false);
|
|
if (yes)
|
|
{
|
|
m_master.SaveSettings();
|
|
}
|
|
|
|
yes = EditorGUILayout.ToggleLeft("Load Settings", false);
|
|
if (yes)
|
|
{
|
|
m_master.LoadSettings();
|
|
}
|
|
|
|
EditorGUILayout.Separator();
|
|
|
|
foreach (Control ctrl in controls)
|
|
{
|
|
switch(ctrl.ctrlType)
|
|
{
|
|
case CtrlType.Bool:
|
|
ctrl.valBool = EditorGUILayout.Toggle(ctrl.name, ctrl.valBool);
|
|
break;
|
|
|
|
case CtrlType.Text:
|
|
ctrl.text = EditorGUILayout.TextField(ctrl.name, ctrl.text);
|
|
break;
|
|
|
|
case CtrlType.Float:
|
|
if (ctrl.hasRange)
|
|
{
|
|
ctrl.valFloat = EditorGUILayout.Slider(ctrl.name, ctrl.valFloat, ctrl.minFloat, ctrl.maxFloat);
|
|
}
|
|
else
|
|
{
|
|
ctrl.valFloat = EditorGUILayout.FloatField(ctrl.name, ctrl.valFloat);
|
|
}
|
|
break;
|
|
|
|
case CtrlType.Int:
|
|
if (ctrl.hasRange)
|
|
{
|
|
ctrl.valInt = (int)EditorGUILayout.Slider(ctrl.name, ctrl.valInt, ctrl.minInt, ctrl.maxInt);
|
|
}
|
|
else
|
|
{
|
|
ctrl.valInt = EditorGUILayout.IntField(ctrl.name, ctrl.valInt);
|
|
}
|
|
break;
|
|
|
|
case CtrlType.Vec2F:
|
|
ctrl.valVector2 = EditorGUILayout.Vector2Field(ctrl.name, ctrl.valVector2);
|
|
break;
|
|
|
|
case CtrlType.Vec3F:
|
|
ctrl.valVector3 = EditorGUILayout.Vector3Field(ctrl.name, ctrl.valVector3);
|
|
break;
|
|
|
|
case CtrlType.Vec4F:
|
|
ctrl.valVector4 = EditorGUILayout.Vector4Field(ctrl.name, ctrl.valVector4);
|
|
break;
|
|
|
|
case CtrlType.ColorF:
|
|
ctrl.valColor = EditorGUILayout.ColorField(ctrl.name, ctrl.valColor);
|
|
break;
|
|
|
|
case CtrlType.Color:
|
|
ctrl.valColor32 = EditorGUILayout.ColorField(ctrl.name, ctrl.valColor32);
|
|
break;
|
|
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
}//namespace UltraControls |