Files
RPGBook/Assets/Okitoki Games/EasyTalk/Editor/Scripts/display/AreaDialogueController2DEditor.cs

67 lines
2.4 KiB
C#
Raw Normal View History

2025-07-21 17:10:16 +01:00
using EasyTalk.Controller;
using EasyTalk.Editor.Utils;
using UnityEditor;
using UnityEngine;
namespace EasyTalk.Editor.Display
{
[CustomEditor(typeof(AreaDialogueController2D))]
public class AreaDialogueController2DEditor : DialogueControllerEditor
{
protected static bool expandActivationSettings = false;
public override void OnInspectorGUI()
{
AreaDialogueController2D areaController = target as AreaDialogueController2D;
//if (dialogueControllerObj == null || (dialogueControllerObj != null && dialogueControllerObj.targetObject != dialogueController))
{
dialogueControllerObj = new SerializedObject(areaController);
}
EditorGUI.BeginChangeCheck();
CreateDialogueAssetSettings();
CreateDialogueRegistrySettings();
CreatePlaybackSettings();
CreateGeneralSettings();
CreateActivationSettings();
CreateDialogueListenerSettings();
CreateControllerEventSettings();
CreateDialolgueEventSettings();
ETGUI.DrawLineSeparator();
if (EditorGUI.EndChangeCheck())
{
EditorUtility.SetDirty(areaController);
}
dialogueControllerObj.ApplyModifiedProperties();
}
protected override void AddSettingForEvents()
{
base.AddSettingForEvents();
EditorGUILayout.PropertyField(dialogueControllerObj.FindProperty("onPrompt"));
EditorGUILayout.PropertyField(dialogueControllerObj.FindProperty("onAreaEntered"));
EditorGUILayout.PropertyField(dialogueControllerObj.FindProperty("onAreaExited"));
}
private void CreateActivationSettings()
{
ETGUI.DrawLineSeparator();
expandActivationSettings = EditorGUILayout.Foldout(expandActivationSettings, new GUIContent("Activation Settings"), EditorStyles.foldoutHeader);
if (expandActivationSettings)
{
EditorGUILayout.PropertyField(dialogueControllerObj.FindProperty("activator"));
EditorGUILayout.PropertyField(dialogueControllerObj.FindProperty("entryPoint"));
EditorGUILayout.PropertyField(dialogueControllerObj.FindProperty("activationMode"));
EditorGUILayout.PropertyField(dialogueControllerObj.FindProperty("deactivationMode"));
}
}
}
}