From 30bb0302298e76cabc9563158b832ceb5fdbeed7 Mon Sep 17 00:00:00 2001 From: nakjun Date: Tue, 7 Jul 2026 15:52:25 +0900 Subject: [PATCH] =?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