From 40185a40d2754f04d2561222f787961c2b99e29e Mon Sep 17 00:00:00 2001 From: nakjun Date: Tue, 7 Jul 2026 15:44:24 +0900 Subject: [PATCH 1/5] =?UTF-8?q?=EB=8B=A4=EC=9D=B4=EC=96=BC=EB=A1=9C?= =?UTF-8?q?=EA=B7=B8=20=EC=8B=9C=EC=8A=A4=ED=85=9C=20=EC=88=98=EC=A0=95?= =?UTF-8?q?=EC=A4=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/01_Scenes/_TestScenes/Test1.unity | 4 +- .../Communication/Dialog/DialogPlayer.cs | 76 ++++++++++++++++--- .../02_Scripts/UI/Communication/ChoiceHud.cs | 1 + Assets/09_UI/Dialog/ChoiceRow.prefab | 3 + Assets/09_UI/Dialog/ChoiceRow.prefab.meta | 7 ++ Assets/09_UI/Dialog/WorldDialogCanvas.prefab | 4 +- .../XR/Settings/OpenXRPackageSettings.asset | 4 +- 7 files changed, 81 insertions(+), 18 deletions(-) create mode 100644 Assets/09_UI/Dialog/ChoiceRow.prefab create mode 100644 Assets/09_UI/Dialog/ChoiceRow.prefab.meta diff --git a/Assets/01_Scenes/_TestScenes/Test1.unity b/Assets/01_Scenes/_TestScenes/Test1.unity index b53cfdb0..44bb86d2 100644 --- a/Assets/01_Scenes/_TestScenes/Test1.unity +++ b/Assets/01_Scenes/_TestScenes/Test1.unity @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:50a42d497c35ce48cc3b9e98ebd2c9aa6245069b3847868c723ccf0caba1dfef -size 26491 +oid sha256:2271ea0fcc999aa8e78f142e4bac412b287acddac4aa168c424de0dff6732a04 +size 28082 diff --git a/Assets/02_Scripts/Communication/Dialog/DialogPlayer.cs b/Assets/02_Scripts/Communication/Dialog/DialogPlayer.cs index 86cd958a..7ca8f017 100644 --- a/Assets/02_Scripts/Communication/Dialog/DialogPlayer.cs +++ b/Assets/02_Scripts/Communication/Dialog/DialogPlayer.cs @@ -20,6 +20,9 @@ public struct DialogEntry [Tooltip("이 대화를 처음 완료하면 메인 진행도 +N (필수 대화가 아니면 0)")] [Min(0)] public int ProgressOnComplete; + + [Tooltip("대화 선택 메뉴에 표시할 이름 (비우면 그룹 이름 사용)")] + public string MenuLabel; } // 노드의 EventKey ↔ 그 노드 재생 시 호출할 이벤트. @@ -30,9 +33,12 @@ public struct NodeEvent public UnityEvent Event; } - [Tooltip("이 NPC의 대화 후보들. 위에서부터 조건을 검사해 첫 번째로 만족하는 대화를 재생")] + [Tooltip("이 NPC의 대화 후보들. 조건을 만족하는 대화가 여럿이면 플레이어가 선택한다")] [SerializeField] private List _dialogs = new(); + [Tooltip("대화가 여러 개일 때 선택 메뉴 상단에 표시할 안내 문구")] + [SerializeField] private string _dialogSelectPrompt = "무슨 이야기를 나눌까?"; + [Header("Dialog HUD Placement")] // 씬에서 캐릭터 위치/주변(벽 등)에 맞춰 조절 [SerializeField] private float _hudChestHeight = 1.2f; // 화자 발 기준 가슴 높이 [SerializeField] private float _hudForwardOffset = 0.5f; // 화자→플레이어 방향으로 띄울 거리 @@ -70,32 +76,79 @@ public async Awaitable Play() { if (IsPlaying) return; - int index = FindPlayableIndex(); - if (index < 0) + // 선택 메뉴가 떠 있는 동안에도 재진입을 막아야 하므로 여기서 잠근다. + IsPlaying = true; + try { - Debug.Log($"[DialogPlayer] 조건에 맞는 대화가 없음: {name}"); - return; + var playable = FindPlayableIndices(); + if (playable.Count == 0) + { + Debug.Log($"[DialogPlayer] 조건에 맞는 대화가 없음: {name}"); + return; + } + + int index = playable.Count == 1 ? playable[0] : await SelectDialog(playable); + if (index < 0) return; // 선택 대기 중 취소됨 (씬 전환 등) + + await PlayEntry(_dialogs[index]); + } + finally + { + IsPlaying = false; } - await PlayEntry(_dialogs[index]); } - // 리스트 순서 = 우선순위. 조건을 만족하고 (반복 가능하거나 아직 안 한) 첫 대화. - private int FindPlayableIndex() + // 조건을 만족하고 (반복 가능하거나 아직 안 한) 대화들의 인덱스. 리스트 순서 유지. + private List FindPlayableIndices() { + var result = new List(); for (int i = 0; i < _dialogs.Count; i++) { var entry = _dialogs[i]; if (entry.Group == null) continue; if (!entry.Repeatable && StoryManager.Instance.IsDialogCompleted(entry.Group.name)) continue; if (entry.Condition != null && !entry.Condition.IsMet(_voice.Character)) continue; - return i; + result.Add(i); + } + return result; + } + + // 재생 가능한 대화가 여럿일 때 ChoiceHud로 플레이어에게 고르게 한다. 반환값은 _dialogs 인덱스. + private async Awaitable SelectDialog(List playable) + { + if (ChoiceHud.Instance == null) + return playable[0]; // 선택 UI가 없으면 기존처럼 최상단 우선 + + // ChoiceHud는 DialogHud를 따라 배치되므로, 먼저 화자 옆에 HUD를 띄운다. + if (DialogHud.Instance != null) + DialogHud.Instance.Show(_voice.Character, _dialogSelectPrompt, _hudChestHeight, _hudForwardOffset, _hudLateralOffset); + + var options = new List(playable.Count); + foreach (int i in playable) + { + var entry = _dialogs[i]; + string label = !string.IsNullOrWhiteSpace(entry.MenuLabel) + ? entry.MenuLabel + : entry.Group.DialogGroupName; + options.Add(new DialogChoice { ChoiceText = label }); // Code 없음 → 선택 이력에 기록 안 됨 + } + + try + { + int picked = await ChoiceHud.Instance.Show(null, options); + return playable[picked]; + } + catch (OperationCanceledException) + { + // 대기 중 ChoiceHud가 비활성화됨(씬 전환 등) — 재생하지 않음 + if (DialogHud.Instance != null) + DialogHud.Instance.Hide(); + return -1; } - return -1; } private async Awaitable PlayEntry(DialogEntry entry) { - IsPlaying = true; try { var node = entry.Group.StartNode; @@ -127,7 +180,6 @@ private async Awaitable PlayEntry(DialogEntry entry) } finally { - IsPlaying = false; if (DialogHud.Instance != null) DialogHud.Instance.Hide(); if (SoundManager.Instance != null) diff --git a/Assets/02_Scripts/UI/Communication/ChoiceHud.cs b/Assets/02_Scripts/UI/Communication/ChoiceHud.cs index 9351d05d..c9f2eb3d 100644 --- a/Assets/02_Scripts/UI/Communication/ChoiceHud.cs +++ b/Assets/02_Scripts/UI/Communication/ChoiceHud.cs @@ -14,6 +14,7 @@ public class ChoiceHud : MonoBehaviour [SerializeField] private Transform _rowContainer; [SerializeField] private DialogChoiceRow _rowPrefab; [SerializeField] private TMP_Text ChoiceQuestion; + [SerializeField] private RectTransform _ScrollRect; private readonly List _rows = new(); private AwaitableCompletionSource _completion; diff --git a/Assets/09_UI/Dialog/ChoiceRow.prefab b/Assets/09_UI/Dialog/ChoiceRow.prefab new file mode 100644 index 00000000..56f69f05 --- /dev/null +++ b/Assets/09_UI/Dialog/ChoiceRow.prefab @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:084bf06a6782fc04febdca3f1e3d2cb4247e37b9ef1cafb6aecb84386aaef556 +size 8327 diff --git a/Assets/09_UI/Dialog/ChoiceRow.prefab.meta b/Assets/09_UI/Dialog/ChoiceRow.prefab.meta new file mode 100644 index 00000000..474a8a1c --- /dev/null +++ b/Assets/09_UI/Dialog/ChoiceRow.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2beaedbeb265d9843b112ed8ff68287d +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/09_UI/Dialog/WorldDialogCanvas.prefab b/Assets/09_UI/Dialog/WorldDialogCanvas.prefab index 5d5b2d2e..4acbf2a1 100644 --- a/Assets/09_UI/Dialog/WorldDialogCanvas.prefab +++ b/Assets/09_UI/Dialog/WorldDialogCanvas.prefab @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:58a081fbe7bc3261bc8b43ef1087a6622a7121d9be2913a9497a4972f1283c27 -size 18354 +oid sha256:1f07a05e0ac03aa8a09d98efa77b51781add0987723feabf669e965141fd077b +size 44994 diff --git a/Assets/XR/Settings/OpenXRPackageSettings.asset b/Assets/XR/Settings/OpenXRPackageSettings.asset index a7d939c2..f656a751 100644 --- a/Assets/XR/Settings/OpenXRPackageSettings.asset +++ b/Assets/XR/Settings/OpenXRPackageSettings.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6ca1a77e36c8a3ae5c74364062a24544e3bb6f81850cf11bee894d10864c3255 -size 115406 +oid sha256:017ec09e4146e8fce7352d089f50e563651728620d083d0de17a00132cd85e18 +size 117853 From 30bb0302298e76cabc9563158b832ceb5fdbeed7 Mon Sep 17 00:00:00 2001 From: nakjun Date: Tue, 7 Jul 2026 15:52:25 +0900 Subject: [PATCH 2/5] =?UTF-8?q?=EB=8C=80=ED=99=94=EB=A1=9C=EC=A7=81=20?= =?UTF-8?q?=EC=88=98=EC=A0=95=EC=A4=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/01_Scenes/_TestScenes/Test1.unity | 4 +- .../02_Scripts/UI/Communication/ChoiceHud.cs | 16 + .../DialogGraph/Carnotaurus_Dialog2.dlg | 432 ++++++++++++++++++ .../DialogGraph/Carnotaurus_Dialog2.dlg.meta | 10 + Assets/09_UI/Dialog/WorldDialogCanvas.prefab | 4 +- .../XR/Settings/OpenXR Package Settings.asset | 3 + .../OpenXR Package Settings.asset.meta | 8 + ProjectSettings/EditorBuildSettings.asset | 2 +- 8 files changed, 474 insertions(+), 5 deletions(-) create mode 100644 Assets/07_Data/DialogGraph/Carnotaurus_Dialog2.dlg create mode 100644 Assets/07_Data/DialogGraph/Carnotaurus_Dialog2.dlg.meta create mode 100644 Assets/XR/Settings/OpenXR Package Settings.asset create mode 100644 Assets/XR/Settings/OpenXR Package Settings.asset.meta diff --git a/Assets/01_Scenes/_TestScenes/Test1.unity b/Assets/01_Scenes/_TestScenes/Test1.unity index 44bb86d2..8ef7edfe 100644 --- a/Assets/01_Scenes/_TestScenes/Test1.unity +++ b/Assets/01_Scenes/_TestScenes/Test1.unity @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2271ea0fcc999aa8e78f142e4bac412b287acddac4aa168c424de0dff6732a04 -size 28082 +oid sha256:dd4411f52a5016d1e5ebf663e390110fa41ebf2a636b1716a4b1502cdf854406 +size 28524 diff --git a/Assets/02_Scripts/UI/Communication/ChoiceHud.cs b/Assets/02_Scripts/UI/Communication/ChoiceHud.cs index c9f2eb3d..17c5d7ed 100644 --- a/Assets/02_Scripts/UI/Communication/ChoiceHud.cs +++ b/Assets/02_Scripts/UI/Communication/ChoiceHud.cs @@ -16,6 +16,12 @@ public class ChoiceHud : MonoBehaviour [SerializeField] private TMP_Text ChoiceQuestion; [SerializeField] private RectTransform _ScrollRect; + [Header("Layout")] + [Tooltip("선택지 한 줄의 높이")] + [SerializeField] private float _rowHeight = 40f; + [Tooltip("이 줄 수까지만 높이를 늘리고, 넘어가면 스크롤로 본다")] + [SerializeField] private int _maxVisibleRows = 3; + private readonly List _rows = new(); private AwaitableCompletionSource _completion; @@ -52,6 +58,7 @@ public async Awaitable Show(string choiceQuestion, List choic row.OnClicked += HandleClicked; _rows.Add(row); } + ResizeToRowCount(choices.Count); _root.SetActive(true); _completion = new AwaitableCompletionSource(); @@ -74,6 +81,15 @@ private void HandleClicked(int index) _completion?.TrySetResult(index); } + // 선택지 개수에 맞춰 스크롤 영역 높이 조절 (1개=40, 2개=80, 3개=120 …). + // _maxVisibleRows를 넘는 개수는 높이를 더 늘리지 않고 스크롤로 본다. + private void ResizeToRowCount(int count) + { + if (_ScrollRect == null) return; + int visibleRows = Mathf.Min(count, _maxVisibleRows); + _ScrollRect.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, visibleRows * _rowHeight); + } + private void Hide() { SetQuestion(null); diff --git a/Assets/07_Data/DialogGraph/Carnotaurus_Dialog2.dlg b/Assets/07_Data/DialogGraph/Carnotaurus_Dialog2.dlg new file mode 100644 index 00000000..723baafe --- /dev/null +++ b/Assets/07_Data/DialogGraph/Carnotaurus_Dialog2.dlg @@ -0,0 +1,432 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &1 +MonoBehaviour: + m_ObjectHideFlags: 61 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 12501, guid: 0000000000000000e000000000000000, type: 0} + m_Name: Carnotaurus_Dialog2 + m_EditorClassIdentifier: UnityEditor.dll::Unity.GraphToolkit.Editor.Implementation.GraphObjectImp + m_GraphModel: + rid: 4848514365209968918 + references: + version: 2 + RefIds: + - rid: -2 + type: {class: , ns: , asm: } + - rid: 4848514365209968918 + type: {class: GraphModelImp, ns: Unity.GraphToolkit.Editor.Implementation, asm: UnityEditor.GraphToolkitModule} + data: + m_Guid: + m_Value0: 14743801598135559126 + m_Value1: 14874423988134968649 + m_HashGuid: + serializedVersion: 2 + Hash: d6e3b4ff6f819ccc497d5523cf916cce + m_Name: Carnotaurus_Dialog2 + m_GraphNodeModels: + - rid: 4848514365209968921 + - rid: 4848514365209968923 + - rid: 4848514365209968938 + m_GraphWireModels: + - rid: 4848514365209968937 + - rid: 4848514365209968939 + m_GraphStickyNoteModels: [] + m_GraphPlacematModels: [] + m_GraphVariableModels: [] + m_GraphPortalModels: [] + m_SectionModels: + - rid: 4848514365209968919 + m_LocalSubgraphs: [] + m_LastKnownBounds: + serializedVersion: 2 + x: -86 + y: 92 + width: 1095 + height: 432 + m_GraphElementMetaData: + - m_Guid: + m_Value0: 11886921906498108818 + m_Value1: 1241276629292152157 + m_HashGuid: + serializedVersion: 2 + Hash: 92fda08d7ed4f6a45df5f38c84e63911 + m_Category: 0 + m_Index: 0 + - m_Guid: + m_Value0: 5760401696664917696 + m_Value1: 5304284838533059046 + m_HashGuid: + serializedVersion: 2 + Hash: c01645bdd20ef14fe6d14014f59a9c49 + m_Category: 0 + m_Index: 1 + - m_Guid: + m_Value0: 12075701744894930101 + m_Value1: 8354277098249585595 + m_HashGuid: + serializedVersion: 2 + Hash: b5ec06d6c18295a7bb03590cc25af073 + m_Category: 2 + m_Index: 0 + - m_Guid: + m_Value0: 18033278169514442201 + m_Value1: 7595949161354533057 + m_HashGuid: + serializedVersion: 2 + Hash: d9fdb665f31243fac1987666843b6a69 + m_Category: 0 + m_Index: 2 + - m_Guid: + m_Value0: 1372665982324540530 + m_Value1: 4413923243976307164 + m_HashGuid: + serializedVersion: 2 + Hash: 7284b72f70b00c13dc310cefcd67413d + m_Category: 2 + m_Index: 1 + m_EntryPoint: + rid: 4848514365209968921 + m_Graph: + rid: 4848514365209968920 + - rid: 4848514365209968919 + type: {class: SectionModel, ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule} + data: + m_Guid: + m_Value0: 17677551595292556901 + m_Value1: 13576497333533336155 + m_HashGuid: + serializedVersion: 2 + Hash: 657e0d28844753f55be24abb646869bc + m_Version: 2 + m_Items: [] + m_Title: + - rid: 4848514365209968920 + type: {class: DialogGraph, ns: DinoLove.Dialog.GraphTool.Editor, asm: Assembly-CSharp-Editor} + data: + - rid: 4848514365209968921 + type: {class: UserNodeModelImp, ns: Unity.GraphToolkit.Editor.Implementation, asm: UnityEditor.GraphToolkitModule} + data: + m_Guid: + m_Value0: 11886921906498108818 + m_Value1: 1241276629292152157 + m_HashGuid: + serializedVersion: 2 + Hash: 92fda08d7ed4f6a45df5f38c84e63911 + m_Version: 2 + m_Position: {x: -86.250015, y: 147.20003} + m_Title: + m_Tooltip: + m_NodePreviewModel: + rid: -2 + m_State: 0 + m_InputConstantsById: + m_KeyList: [] + m_ValueList: [] + m_InputPortInfos: + expandedPortsById: + m_KeyList: [] + m_ValueList: + m_OutputPortInfos: + expandedPortsById: + m_KeyList: [] + m_ValueList: + m_Collapsed: 0 + m_CurrentModeIndex: 0 + m_ElementColor: + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_HasUserColor: 0 + m_Node: + rid: 4848514365209968922 + - rid: 4848514365209968922 + type: {class: DialogStartNode, ns: DinoLove.Dialog.GraphTool.Editor, asm: Assembly-CSharp-Editor} + data: + - rid: 4848514365209968923 + type: {class: UserNodeModelImp, ns: Unity.GraphToolkit.Editor.Implementation, asm: UnityEditor.GraphToolkitModule} + data: + m_Guid: + m_Value0: 5760401696664917696 + m_Value1: 5304284838533059046 + m_HashGuid: + serializedVersion: 2 + Hash: c01645bdd20ef14fe6d14014f59a9c49 + m_Version: 2 + m_Position: {x: 180.505, y: 92.442505} + m_Title: + m_Tooltip: + m_NodePreviewModel: + rid: -2 + m_State: 0 + m_InputConstantsById: + m_KeyList: + - __option_ChoiceCount + - __option_EventKey + - Speaker + - TalkText + - Gesture + - Expression + - Voice + - Bgm + - Vfx + - LineDuration + - LookAtPlayer + - WaitForInput + m_ValueList: + - rid: 4848514365209968924 + - rid: 4848514365209968925 + - rid: 4848514365209968926 + - rid: 4848514365209968927 + - rid: 4848514365209968928 + - rid: 4848514365209968929 + - rid: 4848514365209968930 + - rid: 4848514365209968931 + - rid: 4848514365209968932 + - rid: 4848514365209968933 + - rid: 4848514365209968934 + - rid: 4848514365209968935 + m_InputPortInfos: + expandedPortsById: + m_KeyList: [] + m_ValueList: + m_OutputPortInfos: + expandedPortsById: + m_KeyList: [] + m_ValueList: + m_Collapsed: 0 + m_CurrentModeIndex: 0 + m_ElementColor: + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_HasUserColor: 0 + m_Node: + rid: 4848514365209968936 + - rid: 4848514365209968924 + type: {class: 'Constant`1[[System.Int32, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule} + data: + m_Value: 0 + - rid: 4848514365209968925 + type: {class: 'Constant`1[[System.String, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule} + data: + m_Value: + - rid: 4848514365209968926 + type: {class: 'Constant`1[[CharacterData, Assembly-CSharp]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule} + data: + m_Value: {fileID: 11400000, guid: b7c3c52c4e4e9fc49bf084eae180835b, type: 2} + - rid: 4848514365209968927 + type: {class: 'Constant`1[[DinoLove.Dialog.GraphTool.Editor.DialogText, Assembly-CSharp-Editor]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule} + data: + m_Value: + Value: "\uC774\uAC83\uC740 \uB450\uBC88\uC9F8 \uB300\uD654." + - rid: 4848514365209968928 + type: {class: 'Constant`1[[GestureData, Assembly-CSharp]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule} + data: + m_Value: {fileID: 0} + - rid: 4848514365209968929 + type: {class: 'Constant`1[[ExpressionData, Assembly-CSharp]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule} + data: + m_Value: {fileID: 0} + - rid: 4848514365209968930 + type: {class: 'Constant`1[[VoiceClip, Assembly-CSharp]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule} + data: + m_Value: {fileID: 0} + - rid: 4848514365209968931 + type: {class: 'Constant`1[[UnityEngine.AudioClip, UnityEngine.AudioModule]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule} + data: + m_Value: {fileID: 0} + - rid: 4848514365209968932 + type: {class: 'Constant`1[[UnityEngine.GameObject, UnityEngine.CoreModule]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule} + data: + m_Value: {fileID: 0} + - rid: 4848514365209968933 + type: {class: 'Constant`1[[System.Single, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule} + data: + m_Value: 5 + - rid: 4848514365209968934 + type: {class: 'Constant`1[[System.Boolean, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule} + data: + m_Value: 1 + - rid: 4848514365209968935 + type: {class: 'Constant`1[[System.Boolean, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule} + data: + m_Value: 0 + - rid: 4848514365209968936 + type: {class: DialogLineNode, ns: DinoLove.Dialog.GraphTool.Editor, asm: Assembly-CSharp-Editor} + data: + - rid: 4848514365209968937 + type: {class: WireModel, ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule} + data: + m_Guid: + m_Value0: 12075701744894930101 + m_Value1: 8354277098249585595 + m_HashGuid: + serializedVersion: 2 + Hash: b5ec06d6c18295a7bb03590cc25af073 + m_Version: 2 + m_FromPortReference: + m_NodeModelGuid: + m_Value0: 11886921906498108818 + m_Value1: 1241276629292152157 + m_NodeModelHashGuid: + serializedVersion: 2 + Hash: 92fda08d7ed4f6a45df5f38c84e63911 + m_UniqueId: Out + m_PortDirection: 2 + m_PortOrientation: 0 + m_Title: + m_ToPortReference: + m_NodeModelGuid: + m_Value0: 5760401696664917696 + m_Value1: 5304284838533059046 + m_NodeModelHashGuid: + serializedVersion: 2 + Hash: c01645bdd20ef14fe6d14014f59a9c49 + m_UniqueId: In + m_PortDirection: 1 + m_PortOrientation: 0 + m_Title: + - rid: 4848514365209968938 + type: {class: UserNodeModelImp, ns: Unity.GraphToolkit.Editor.Implementation, asm: UnityEditor.GraphToolkitModule} + data: + m_Guid: + m_Value0: 18033278169514442201 + m_Value1: 7595949161354533057 + m_HashGuid: + serializedVersion: 2 + Hash: d9fdb665f31243fac1987666843b6a69 + m_Version: 2 + m_Position: {x: 617.28503, y: 92} + m_Title: + m_Tooltip: + m_NodePreviewModel: + rid: -2 + m_State: 0 + m_InputConstantsById: + m_KeyList: + - __option_ChoiceCount + - __option_EventKey + - Speaker + - TalkText + - Gesture + - Expression + - Voice + - Bgm + - Vfx + - LineDuration + - LookAtPlayer + - WaitForInput + m_ValueList: + - rid: 4848514365209968940 + - rid: 4848514365209968941 + - rid: 4848514365209968942 + - rid: 4848514365209968943 + - rid: 4848514365209968944 + - rid: 4848514365209968945 + - rid: 4848514365209968946 + - rid: 4848514365209968947 + - rid: 4848514365209968948 + - rid: 4848514365209968949 + - rid: 4848514365209968950 + - rid: 4848514365209968951 + m_InputPortInfos: + expandedPortsById: + m_KeyList: [] + m_ValueList: + m_OutputPortInfos: + expandedPortsById: + m_KeyList: [] + m_ValueList: + m_Collapsed: 0 + m_CurrentModeIndex: 0 + m_ElementColor: + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_HasUserColor: 0 + m_Node: + rid: 4848514365209968952 + - rid: 4848514365209968939 + type: {class: WireModel, ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule} + data: + m_Guid: + m_Value0: 1372665982324540530 + m_Value1: 4413923243976307164 + m_HashGuid: + serializedVersion: 2 + Hash: 7284b72f70b00c13dc310cefcd67413d + m_Version: 2 + m_FromPortReference: + m_NodeModelGuid: + m_Value0: 5760401696664917696 + m_Value1: 5304284838533059046 + m_NodeModelHashGuid: + serializedVersion: 2 + Hash: c01645bdd20ef14fe6d14014f59a9c49 + m_UniqueId: Out + m_PortDirection: 2 + m_PortOrientation: 0 + m_Title: + m_ToPortReference: + m_NodeModelGuid: + m_Value0: 18033278169514442201 + m_Value1: 7595949161354533057 + m_NodeModelHashGuid: + serializedVersion: 2 + Hash: d9fdb665f31243fac1987666843b6a69 + m_UniqueId: In + m_PortDirection: 1 + m_PortOrientation: 0 + m_Title: + - rid: 4848514365209968940 + type: {class: 'Constant`1[[System.Int32, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule} + data: + m_Value: 0 + - rid: 4848514365209968941 + type: {class: 'Constant`1[[System.String, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule} + data: + m_Value: + - rid: 4848514365209968942 + type: {class: 'Constant`1[[CharacterData, Assembly-CSharp]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule} + data: + m_Value: {fileID: 11400000, guid: b7c3c52c4e4e9fc49bf084eae180835b, type: 2} + - rid: 4848514365209968943 + type: {class: 'Constant`1[[DinoLove.Dialog.GraphTool.Editor.DialogText, Assembly-CSharp-Editor]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule} + data: + m_Value: + Value: "\uB180\uB78D\uC9C0?" + - rid: 4848514365209968944 + type: {class: 'Constant`1[[GestureData, Assembly-CSharp]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule} + data: + m_Value: {fileID: 0} + - rid: 4848514365209968945 + type: {class: 'Constant`1[[ExpressionData, Assembly-CSharp]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule} + data: + m_Value: {fileID: 0} + - rid: 4848514365209968946 + type: {class: 'Constant`1[[VoiceClip, Assembly-CSharp]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule} + data: + m_Value: {fileID: 0} + - rid: 4848514365209968947 + type: {class: 'Constant`1[[UnityEngine.AudioClip, UnityEngine.AudioModule]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule} + data: + m_Value: {fileID: 0} + - rid: 4848514365209968948 + type: {class: 'Constant`1[[UnityEngine.GameObject, UnityEngine.CoreModule]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule} + data: + m_Value: {fileID: 0} + - rid: 4848514365209968949 + type: {class: 'Constant`1[[System.Single, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule} + data: + m_Value: 5 + - rid: 4848514365209968950 + type: {class: 'Constant`1[[System.Boolean, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule} + data: + m_Value: 0 + - rid: 4848514365209968951 + type: {class: 'Constant`1[[System.Boolean, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule} + data: + m_Value: 0 + - rid: 4848514365209968952 + type: {class: DialogLineNode, ns: DinoLove.Dialog.GraphTool.Editor, asm: Assembly-CSharp-Editor} + data: diff --git a/Assets/07_Data/DialogGraph/Carnotaurus_Dialog2.dlg.meta b/Assets/07_Data/DialogGraph/Carnotaurus_Dialog2.dlg.meta new file mode 100644 index 00000000..414e76a9 --- /dev/null +++ b/Assets/07_Data/DialogGraph/Carnotaurus_Dialog2.dlg.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: a30515c1ae6d4414ba823659d8fec80f +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 2ae5ca89bbed445479d9023586f0c041, type: 3} diff --git a/Assets/09_UI/Dialog/WorldDialogCanvas.prefab b/Assets/09_UI/Dialog/WorldDialogCanvas.prefab index 4acbf2a1..4c8b8c18 100644 --- a/Assets/09_UI/Dialog/WorldDialogCanvas.prefab +++ b/Assets/09_UI/Dialog/WorldDialogCanvas.prefab @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1f07a05e0ac03aa8a09d98efa77b51781add0987723feabf669e965141fd077b -size 44994 +oid sha256:eb863f372144b8b3728594d88b18a917e6f67bfbfafcb879f5cf0c035e8d18bc +size 36127 diff --git a/Assets/XR/Settings/OpenXR Package Settings.asset b/Assets/XR/Settings/OpenXR Package Settings.asset new file mode 100644 index 00000000..86b0ae08 --- /dev/null +++ b/Assets/XR/Settings/OpenXR Package Settings.asset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6e5c705f289e3534a85efd261a2d81aff5c8d431f84944dc7c81f977d1a14c7a +size 91498 diff --git a/Assets/XR/Settings/OpenXR Package Settings.asset.meta b/Assets/XR/Settings/OpenXR Package Settings.asset.meta new file mode 100644 index 00000000..6c6fcde6 --- /dev/null +++ b/Assets/XR/Settings/OpenXR Package Settings.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a420815a479c8334da4ee0cd26cd9f35 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/ProjectSettings/EditorBuildSettings.asset b/ProjectSettings/EditorBuildSettings.asset index 577fce0c..e20e9883 100644 --- a/ProjectSettings/EditorBuildSettings.asset +++ b/ProjectSettings/EditorBuildSettings.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:087f160a1f8b73f97926e7f0c3f610f55da003675a4f2a3ce13dcdada3f47312 +oid sha256:89b7522de7bc16af19101d2e947a71ea301476949c1ffec530b702fa710bd969 size 1126 From d9e0b56dfb11439e33e2e42237d6d78776f0ed07 Mon Sep 17 00:00:00 2001 From: nakjun Date: Tue, 7 Jul 2026 16:03:14 +0900 Subject: [PATCH 3/5] =?UTF-8?q?=EC=98=A4=EB=A5=98=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/XR/Settings/OpenXRPackageSettings.asset | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Assets/XR/Settings/OpenXRPackageSettings.asset b/Assets/XR/Settings/OpenXRPackageSettings.asset index 06844b89..f656a751 100644 --- a/Assets/XR/Settings/OpenXRPackageSettings.asset +++ b/Assets/XR/Settings/OpenXRPackageSettings.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1a693d9570e74639431809299feef0e1f4ee74202f9b97d5a52a0935e5cd90c7 -size 277 +oid sha256:017ec09e4146e8fce7352d089f50e563651728620d083d0de17a00132cd85e18 +size 117853 From 62793123a49273495d055d44d0d744d5bc0095c5 Mon Sep 17 00:00:00 2001 From: nakjun Date: Tue, 7 Jul 2026 17:09:00 +0900 Subject: [PATCH 4/5] =?UTF-8?q?=EC=98=A4=EB=A5=98=EC=88=98=EC=A0=95=3F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vsconfig | 6 ------ Assets/01_Scenes/_TestScenes/Test1.unity | 4 ++-- .../Fonts & Materials/LiberationSans SDF - Fallback.asset | 4 ++-- Assets/XR/Settings/OpenXR Package Settings.asset | 4 ++-- 4 files changed, 6 insertions(+), 12 deletions(-) delete mode 100644 .vsconfig diff --git a/.vsconfig b/.vsconfig deleted file mode 100644 index f019fd0a..00000000 --- a/.vsconfig +++ /dev/null @@ -1,6 +0,0 @@ -{ - "version": "1.0", - "components": [ - "Microsoft.VisualStudio.Workload.ManagedGame" - ] -} diff --git a/Assets/01_Scenes/_TestScenes/Test1.unity b/Assets/01_Scenes/_TestScenes/Test1.unity index 8ef7edfe..e82844ea 100644 --- a/Assets/01_Scenes/_TestScenes/Test1.unity +++ b/Assets/01_Scenes/_TestScenes/Test1.unity @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:dd4411f52a5016d1e5ebf663e390110fa41ebf2a636b1716a4b1502cdf854406 -size 28524 +oid sha256:f9945075f8c5d3a71259cafa76923954fa9bd8b8e36489304f78ad33433bee99 +size 28704 diff --git a/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset b/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset index 42f8d570..7ee63ac6 100644 --- a/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset +++ b/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:bde8096b4febd510d2787bef00dbe8c532f421f4824cfa52a754116d9e0ea93d -size 535525 +oid sha256:9aff2029e439b726cf497fa4da30ded4082322759f4c8c2810d24d35d9eb955c +size 9739 diff --git a/Assets/XR/Settings/OpenXR Package Settings.asset b/Assets/XR/Settings/OpenXR Package Settings.asset index 86b0ae08..e5ac7b9a 100644 --- a/Assets/XR/Settings/OpenXR Package Settings.asset +++ b/Assets/XR/Settings/OpenXR Package Settings.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6e5c705f289e3534a85efd261a2d81aff5c8d431f84944dc7c81f977d1a14c7a -size 91498 +oid sha256:ea2861743d2bc1183ee7312e63305390c7561dd0e537e5ad6c13e893d01dd89e +size 102062 From 0b3263e35334115b76c3340ba02edef2e84893e5 Mon Sep 17 00:00:00 2001 From: nakjun Date: Tue, 7 Jul 2026 17:40:16 +0900 Subject: [PATCH 5/5] =?UTF-8?q?2026-07-07=20=EC=97=AC=EB=9F=AC=EB=8C=80?= =?UTF-8?q?=ED=99=94=EC=A4=91=20=EC=84=A0=ED=83=9D=ED=95=A0=EC=88=98=20?= =?UTF-8?q?=EC=9E=88=EA=B2=8C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/01_Scenes/_TestScenes/Test1.unity | 4 ++-- Assets/02_Scripts/UI/Communication/ChoiceHud.cs | 2 ++ .../Fonts & Materials/LiberationSans SDF - Fallback.asset | 4 ++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Assets/01_Scenes/_TestScenes/Test1.unity b/Assets/01_Scenes/_TestScenes/Test1.unity index e82844ea..e7feb7e7 100644 --- a/Assets/01_Scenes/_TestScenes/Test1.unity +++ b/Assets/01_Scenes/_TestScenes/Test1.unity @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f9945075f8c5d3a71259cafa76923954fa9bd8b8e36489304f78ad33433bee99 -size 28704 +oid sha256:7a582d5733d90eb3199bcd9e072a11760535631e528dfb120a96090afef142a1 +size 29909 diff --git a/Assets/02_Scripts/UI/Communication/ChoiceHud.cs b/Assets/02_Scripts/UI/Communication/ChoiceHud.cs index 17c5d7ed..e9a017a2 100644 --- a/Assets/02_Scripts/UI/Communication/ChoiceHud.cs +++ b/Assets/02_Scripts/UI/Communication/ChoiceHud.cs @@ -13,8 +13,10 @@ public class ChoiceHud : MonoBehaviour [SerializeField] private GameObject _root; [SerializeField] private Transform _rowContainer; [SerializeField] private DialogChoiceRow _rowPrefab; + [SerializeField] private GameObject _dialogSelectPanelObj; [SerializeField] private TMP_Text ChoiceQuestion; [SerializeField] private RectTransform _ScrollRect; + [Header("Layout")] [Tooltip("선택지 한 줄의 높이")] diff --git a/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset b/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset index 7ee63ac6..4da70ab4 100644 --- a/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset +++ b/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9aff2029e439b726cf497fa4da30ded4082322759f4c8c2810d24d35d9eb955c -size 9739 +oid sha256:d11638ae9059e3d45290d1479759906f41707d200fe9263608e97ade72044e95 +size 538457