Add Screen display mode with dedicated UI component

This commit is contained in:
2026-01-27 16:46:46 +01:00
parent 203b00578a
commit d1b7104676
37 changed files with 1306 additions and 254 deletions
@@ -8,12 +8,38 @@ public class DialogueConversationEditor : Editor
{
private SerializedProperty _speakerNameProp;
private SerializedProperty _speakerNameLocalizationKeyProp;
private SerializedProperty _displayModeProp;
private SerializedProperty _dialogueNodesProp;
[MenuItem("Unheimlich/Tools/Dialogue/Refresh All Conversations")]
public static void RefreshAllConversations()
{
string[] guids = AssetDatabase.FindAssets("t:DialogueConversation");
int count = 0;
foreach (string guid in guids)
{
string path = AssetDatabase.GUIDToAssetPath(guid);
DialogueConversation conv = AssetDatabase.LoadAssetAtPath<DialogueConversation>(path);
if (conv != null)
{
EditorUtility.SetDirty(conv);
count++;
}
}
AssetDatabase.SaveAssets();
AssetDatabase.Refresh();
Debug.Log($"<color=green>[Dialogue Refresher]</color> {count} conversations ont été rafraîchies !");
}
private void OnEnable()
{
_speakerNameProp = serializedObject.FindProperty("SpeakerName");
_speakerNameLocalizationKeyProp = serializedObject.FindProperty("SpeakerNameLocalizationKey");
_displayModeProp = serializedObject.FindProperty("DisplayMode");
_dialogueNodesProp = serializedObject.FindProperty("DialogueNodes");
}
@@ -27,6 +53,17 @@ public class DialogueConversationEditor : Editor
EditorGUILayout.PropertyField(_speakerNameProp);
EditorGUILayout.PropertyField(_speakerNameLocalizationKeyProp, new GUIContent("Localization Key (Optional)"));
EditorGUILayout.Space(5);
EditorGUILayout.LabelField("Display Settings", EditorStyles.boldLabel);
EditorGUILayout.PropertyField(_displayModeProp, new GUIContent("Display Mode"));
EditorGUILayout.HelpBox(
"World: Dialogue text appears in 3D space\n" +
"Screen: Dialogue text appears on Canvas UI\n" +
"Choices always appear in World space.",
MessageType.Info);
EditorGUILayout.Space(10);
EditorGUILayout.LabelField("Dialogue Flow", EditorStyles.boldLabel);