chunk 1: core gameplay scripts scenes runtime assets
This commit is contained in:
158
Assets/Scripts/Editor/DeviceDisplaySettingsEditor.cs
Normal file
158
Assets/Scripts/Editor/DeviceDisplaySettingsEditor.cs
Normal file
@@ -0,0 +1,158 @@
|
||||
using UnityEngine;
|
||||
using UnityEditor;
|
||||
using UnityEditorInternal;
|
||||
|
||||
[CustomEditor(typeof(DeviceDisplaySettings))]
|
||||
public class DeviceDisplaySettingsEditor : UnityEditor.Editor
|
||||
{
|
||||
|
||||
private DeviceDisplaySettings deviceDisplaySettings;
|
||||
|
||||
//Display Name
|
||||
public SerializedProperty deviceDisplayNameProperty;
|
||||
|
||||
//Display Color
|
||||
public SerializedProperty deviceDisplayColorProperty;
|
||||
|
||||
//Icons
|
||||
public SerializedProperty deviceHasContextIconsProperty;
|
||||
|
||||
//Icons - Action Buttons
|
||||
public SerializedProperty buttonNorthIconProperty;
|
||||
public SerializedProperty buttonSouthIconProperty;
|
||||
public SerializedProperty buttonWestIconProperty;
|
||||
public SerializedProperty buttonEastIconProperty;
|
||||
|
||||
//Icon - Triggers
|
||||
public SerializedProperty triggerRightFrontIconProperty;
|
||||
public SerializedProperty triggerRightBackIconProperty;
|
||||
public SerializedProperty triggerLeftFrontIconProperty;
|
||||
public SerializedProperty triggerLeftBackIconProperty;
|
||||
|
||||
//Icon - Custom Contexts
|
||||
private ReorderableList customInputContextIconList;
|
||||
|
||||
void OnEnable()
|
||||
{
|
||||
//Display Name
|
||||
deviceDisplayNameProperty = serializedObject.FindProperty("deviceDisplayName");
|
||||
|
||||
//Display Color
|
||||
deviceDisplayColorProperty = serializedObject.FindProperty("deviceDisplayColor");
|
||||
|
||||
//Icons
|
||||
deviceHasContextIconsProperty = serializedObject.FindProperty("deviceHasContextIcons");
|
||||
|
||||
//Icons - Action Buttons
|
||||
buttonNorthIconProperty = serializedObject.FindProperty("buttonNorthIcon");
|
||||
buttonSouthIconProperty = serializedObject.FindProperty("buttonSouthIcon");
|
||||
buttonWestIconProperty = serializedObject.FindProperty("buttonWestIcon");
|
||||
buttonEastIconProperty = serializedObject.FindProperty("buttonEastIcon");
|
||||
|
||||
//Icon - Triggers
|
||||
triggerRightFrontIconProperty = serializedObject.FindProperty("triggerRightFrontIcon");
|
||||
triggerRightBackIconProperty = serializedObject.FindProperty("triggerRightBackIcon");
|
||||
triggerLeftFrontIconProperty = serializedObject.FindProperty("triggerLeftFrontIcon");
|
||||
triggerLeftBackIconProperty = serializedObject.FindProperty("triggerLeftBackIcon");
|
||||
|
||||
DrawCustomContextList();
|
||||
}
|
||||
|
||||
void DrawCustomContextList()
|
||||
{
|
||||
customInputContextIconList = new ReorderableList(serializedObject, serializedObject.FindProperty("customContextIcons"), true, true, true, true);
|
||||
|
||||
customInputContextIconList.drawHeaderCallback = (Rect rect) => {
|
||||
EditorGUI.LabelField(CalculateColumn(rect, 1, 15, 0), "Input Binding String");
|
||||
EditorGUI.LabelField(CalculateColumn(rect, 2, 15, 0), "Display Icon");
|
||||
};
|
||||
|
||||
customInputContextIconList.drawElementCallback = (Rect rect, int index, bool isActive, bool isFocused) => {
|
||||
|
||||
var element = customInputContextIconList.serializedProperty.GetArrayElementAtIndex(index);
|
||||
|
||||
rect.y += 2;
|
||||
|
||||
EditorGUI.PropertyField(CalculateColumn(rect, 1, 0, 0), element.FindPropertyRelative("customInputContextString"), GUIContent.none);
|
||||
EditorGUI.PropertyField(CalculateColumn(rect, 2, 10, 10), element.FindPropertyRelative("customInputContextIcon"), GUIContent.none);
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
public override void OnInspectorGUI()
|
||||
{
|
||||
|
||||
deviceDisplaySettings = (DeviceDisplaySettings)target;
|
||||
|
||||
serializedObject.Update();
|
||||
|
||||
EditorGUILayout.LabelField("Display Name", EditorStyles.boldLabel);
|
||||
EditorGUILayout.PropertyField(deviceDisplayNameProperty);
|
||||
|
||||
DrawSpaceGUI(2);
|
||||
|
||||
EditorGUILayout.LabelField("Display Color", EditorStyles.boldLabel);
|
||||
EditorGUILayout.PropertyField(deviceDisplayColorProperty);
|
||||
|
||||
DrawSpaceGUI(2);
|
||||
|
||||
EditorGUILayout.LabelField("Icon Settings", EditorStyles.boldLabel);
|
||||
EditorGUILayout.PropertyField(deviceHasContextIconsProperty);
|
||||
|
||||
if(deviceDisplaySettings.deviceHasContextIcons == true)
|
||||
{
|
||||
|
||||
DrawSpaceGUI(3);
|
||||
|
||||
EditorGUILayout.LabelField("Icons - Action Buttons", EditorStyles.boldLabel);
|
||||
EditorGUILayout.PropertyField(buttonNorthIconProperty);
|
||||
EditorGUILayout.PropertyField(buttonSouthIconProperty);
|
||||
EditorGUILayout.PropertyField(buttonWestIconProperty);
|
||||
EditorGUILayout.PropertyField(buttonEastIconProperty);
|
||||
|
||||
DrawSpaceGUI(3);
|
||||
|
||||
EditorGUILayout.LabelField("Icons - Triggers", EditorStyles.boldLabel);
|
||||
EditorGUILayout.PropertyField(triggerRightFrontIconProperty);
|
||||
EditorGUILayout.PropertyField(triggerRightBackIconProperty);
|
||||
EditorGUILayout.PropertyField(triggerLeftFrontIconProperty);
|
||||
EditorGUILayout.PropertyField(triggerLeftBackIconProperty);
|
||||
|
||||
DrawSpaceGUI(3);
|
||||
|
||||
EditorGUILayout.LabelField("Icons - Custom Contexts", EditorStyles.boldLabel);
|
||||
customInputContextIconList.DoLayoutList();
|
||||
}
|
||||
|
||||
serializedObject.ApplyModifiedProperties();
|
||||
|
||||
}
|
||||
|
||||
void DrawSpaceGUI(int amountOfSpace)
|
||||
{
|
||||
for(int i = 0; i < amountOfSpace; i++)
|
||||
{
|
||||
EditorGUILayout.Space();
|
||||
}
|
||||
}
|
||||
|
||||
Rect CalculateColumn(Rect rect, int columnNumber, float xPadding, float xWidth)
|
||||
{
|
||||
float xPosition = rect.x;
|
||||
switch (columnNumber)
|
||||
{
|
||||
case 1:
|
||||
xPosition = rect.x + xPadding;
|
||||
break;
|
||||
|
||||
case 2:
|
||||
xPosition = rect.x + rect.width/2 + xPadding;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
return new Rect(xPosition, rect.y, rect.width / 2 - xWidth, EditorGUIUtility.singleLineHeight);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user