UI 자동화를 위해 바인딩 기능 구현

- 유니티 에셋 인증 오류로 meta 재생성
This commit is contained in:
2026-01-25 01:31:34 +09:00
parent 2ceb28f55d
commit ce83f21c93
1861 changed files with 377882 additions and 211 deletions

View File

@@ -0,0 +1,94 @@
#if UNITY_EDITOR
using System.Linq;
using UnityEditor;
////TODO: support multi-object editing
namespace UnityEngine.InputSystem.Samples.RebindUI
{
/// <summary>
/// A custom inspector for <see cref="RebindActionUI"/> which provides a more convenient way for
/// picking the binding which to rebind.
/// </summary>
[CustomEditor(typeof(RebindActionUI))]
public class RebindActionUIEditor : UnityEditor.Editor
{
protected void OnEnable()
{
m_ActionLabelProperty = serializedObject.FindProperty("m_ActionLabel");
m_BindingTextProperty = serializedObject.FindProperty("m_BindingText");
m_RebindOverlayProperty = serializedObject.FindProperty("m_RebindOverlay");
m_RebindTextProperty = serializedObject.FindProperty("m_RebindText");
m_RebindInfoProperty = serializedObject.FindProperty("m_RebindInfo");
m_RebindCancelButtonProperty = serializedObject.FindProperty("m_RebindCancelButton");
m_RebindTimeoutProperty = serializedObject.FindProperty("m_RebindTimeout");
m_UpdateBindingUIEventProperty = serializedObject.FindProperty("m_UpdateBindingUIEvent");
m_RebindStartEventProperty = serializedObject.FindProperty("m_RebindStartEvent");
m_RebindStopEventProperty = serializedObject.FindProperty("m_RebindStopEvent");
m_BindingUI = new BindingUI(serializedObject);
}
public override void OnInspectorGUI()
{
EditorGUI.BeginChangeCheck();
// Binding section.
m_BindingUI.Draw();
// UI section.
EditorGUILayout.Space();
EditorGUILayout.LabelField(m_UILabel);
using (new EditorGUI.IndentLevelScope())
{
EditorGUILayout.PropertyField(m_ActionLabelProperty);
EditorGUILayout.PropertyField(m_BindingTextProperty);
EditorGUILayout.PropertyField(m_RebindOverlayProperty);
EditorGUILayout.PropertyField(m_RebindTextProperty);
EditorGUILayout.PropertyField(m_RebindInfoProperty);
EditorGUILayout.PropertyField(m_RebindCancelButtonProperty);
}
// Rebind options section.
EditorGUILayout.Space();
EditorGUILayout.LabelField(m_RebindOptionsLabel);
using (new EditorGUI.IndentLevelScope())
{
EditorGUILayout.PropertyField(m_RebindTimeoutProperty);
}
// Events section.
EditorGUILayout.Space();
EditorGUILayout.LabelField(m_EventsLabel);
using (new EditorGUI.IndentLevelScope())
{
EditorGUILayout.PropertyField(m_RebindStartEventProperty);
EditorGUILayout.PropertyField(m_RebindStopEventProperty);
EditorGUILayout.PropertyField(m_UpdateBindingUIEventProperty);
}
if (EditorGUI.EndChangeCheck())
{
serializedObject.ApplyModifiedProperties();
m_BindingUI.Refresh();
}
}
private SerializedProperty m_ActionLabelProperty;
private SerializedProperty m_BindingTextProperty;
private SerializedProperty m_RebindOverlayProperty;
private SerializedProperty m_RebindTextProperty;
private SerializedProperty m_RebindInfoProperty;
private SerializedProperty m_RebindCancelButtonProperty;
private SerializedProperty m_RebindTimeoutProperty;
private SerializedProperty m_RebindStartEventProperty;
private SerializedProperty m_RebindStopEventProperty;
private SerializedProperty m_UpdateBindingUIEventProperty;
private GUIContent m_UILabel = new GUIContent("UI");
private GUIContent m_RebindOptionsLabel = new GUIContent("Rebind Options");
private GUIContent m_EventsLabel = new GUIContent("Events");
private BindingUI m_BindingUI;
}
}
#endif