대화 프로토타입

This commit is contained in:
2026-06-19 17:09:36 +09:00
parent 3c8daa9c8d
commit 711c9a5986
24 changed files with 985 additions and 66 deletions

View File

@@ -0,0 +1,19 @@
using UnityEngine;
using UnityEngine.XR.Interaction.Toolkit;
[RequireComponent(typeof(DialogPlayer))]
public class DialogInteractable : MonoBehaviour
{
private DialogPlayer _player;
private void Awake()
{
_player = GetComponent<DialogPlayer>();
}
public void HandleActivated(ActivateEventArgs args)
{
if (_player == null || _player.IsPlaying) return;
_ = _player.Play();
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: b05ae7fb07619844f8a7e36f20f64ba8

View File

@@ -33,11 +33,10 @@ private void Awake()
}
}
public void Play()
public async Awaitable Play()
{
if(_dialogGroups.Count > 0)
_ = Play(_dialogGroups[0].DialogGroupName);
}
public async Awaitable Play(string groupName)
@@ -71,6 +70,8 @@ public async Awaitable Play(string groupName)
finally
{
IsPlaying = false;
if (DialogHud.Instance != null)
DialogHud.Instance.Hide();
RestoreDefaultAnimations();
RestoreRotations();
}
@@ -133,8 +134,9 @@ private async Awaitable RotateToRotation(Transform target, Quaternion targetRota
private async Awaitable PlayNode(DialogNode node)
{
var speakerName = node.Speaker != null ? node.Speaker.Name : "(누구?)";
Debug.Log($"[{speakerName}] {node.TalkText}");
// 화자 옆 DialogHud에 대사 표시
if (DialogHud.Instance != null)
DialogHud.Instance.Show(node.Speaker, node.TalkText);
// 보이스 재생
if (node.Voice != null && node.Speaker != null)
@@ -182,7 +184,7 @@ private async Awaitable<int> WaitForChoice(DialogNode node)
Debug.LogWarning("[DialogPlayer] ChoiceHud 없음 — 0번 자동 선택");
return 0;
}
return await ChoiceHud.Instance.Show(node.Speaker, node.ChoiceQuestion ,node.Choices);
return await ChoiceHud.Instance.Show(node.ChoiceQuestion, node.Choices);
}

View File

@@ -92,10 +92,10 @@ public override void OnImportAsset(AssetImportContext ctx)
}
else
{
dn.ChoiceQuestion = GetInputPortValue<string>(gn.GetInputPortByName(DialogLineNode.PORT_QUESTION));
dn.ChoiceQuestion = GetInputPortValue<DialogText>(gn.GetInputPortByName(DialogLineNode.PORT_QUESTION)).Value;
for (int i = 0; i < choiceCount; i++)
{
var choiceText = GetInputPortValue<string>(gn.GetInputPortByName(DialogLineNode.ChoiceTextPort(i)));
var choiceText = GetInputPortValue<DialogText>(gn.GetInputPortByName(DialogLineNode.ChoiceTextPort(i))).Value;
var dest = GetConnectedNode(gn, DialogLineNode.ChoiceOutPort(i));
dn.Choices.Add(new DialogChoice
{

View File

@@ -61,11 +61,12 @@ protected override void OnDefinePorts(IPortDefinitionContext context)
}
// 가변 N지선다
context.AddInputPort<string>(PORT_QUESTION).WithDisplayName("Choice Question").Build();
// (string 포트는 GraphToolkit 기본 에디터의 IME 중복입력 버그가 있어 DialogText로 통일)
context.AddInputPort<DialogText>(PORT_QUESTION).WithDisplayName("Choice Question").Build();
for (int i = 0; i < choiceCount; i++)
{
context.AddInputPort<string>(ChoiceTextPort(i))
context.AddInputPort<DialogText>(ChoiceTextPort(i))
.WithDisplayName($"Choice {i + 1} Text")
.Build();
AddExecOutput(context, ChoiceOutPort(i), $"Choice {i + 1} →");

View File

@@ -2,8 +2,9 @@
using TMPro;
using UnityEngine;
// 화자 몸통 앞에 떠 있는 World-space 선택지 UI 싱글턴
// DialogPlayer가 Show()를 await해서 선택된 인덱스를 받아감
// World-space 선택지 UI 싱글턴.
// DialogPlayer가 Show()를 await해서 선택된 인덱스를 받아감.
// 배치(Placement)는 DialogHud가 담당하므로, 이 오브젝트를 DialogHud의 자식으로 두면 함께 따라온다.
public class ChoiceHud : MonoBehaviour
{
public static ChoiceHud Instance { get; private set; }
@@ -14,11 +15,6 @@ public class ChoiceHud : MonoBehaviour
[SerializeField] private DialogChoiceRow _rowPrefab;
[SerializeField] private TMP_Text ChoiceQuestion;
[Header("Placement")]
[SerializeField] private float _chestHeight = 1.2f; // 화자 발 기준 가슴 높이
[SerializeField] private float _forwardOffset = 0.5f; // 화자→플레이어 방향으로 띄울 거리
private Transform _speakerTransform;
private readonly List<DialogChoiceRow> _rows = new();
private AwaitableCompletionSource<int> _completion;
@@ -42,13 +38,11 @@ private void OnDisable()
_completion = null;
}
public async Awaitable<int> Show(CharacterData speaker,string choiceQuestion, List<DialogChoice> choices)
public async Awaitable<int> Show(string choiceQuestion, List<DialogChoice> choices)
{
if (choices == null || choices.Count == 0) return 0;
_speakerTransform = speaker != null ? CharacterVoiceObject.Find(speaker)?.transform : null;
ChoiceQuestion.text = choiceQuestion;
SetQuestion(choiceQuestion);
ClearRows();
for (int i = 0; i < choices.Count; i++)
{
@@ -81,10 +75,19 @@ private void HandleClicked(int index)
private void Hide()
{
ChoiceQuestion.text = "";
SetQuestion(null);
ClearRows();
if (_root != null) _root.SetActive(false);
_speakerTransform = null;
}
// 질문이 비어 있으면 질문 텍스트 자체를 숨긴다. (기본값: 질문 없음 → 안 보임)
// 질문은 보통 노드의 대사(TalkText)로 대신하므로 ChoiceQuestion은 비워둬도 된다.
private void SetQuestion(string question)
{
if (ChoiceQuestion == null) return;
bool hasQuestion = !string.IsNullOrWhiteSpace(question);
ChoiceQuestion.text = hasQuestion ? question : string.Empty;
ChoiceQuestion.gameObject.SetActive(hasQuestion);
}
private void ClearRows()
@@ -97,24 +100,4 @@ private void ClearRows()
}
_rows.Clear();
}
private void LateUpdate()
{
if (_root == null || !_root.activeSelf) return;
if (_speakerTransform == null || Camera.main == null) return;
var camTr = Camera.main.transform;
// 화자에서 플레이어 카메라로 향하는 수평 방향 (yaw만)
Vector3 toCam = camTr.position - _speakerTransform.position;
toCam.y = 0f;
if (toCam.sqrMagnitude < 0.0001f) return;
Vector3 dir = toCam.normalized;
Vector3 chestWorld = _speakerTransform.position + Vector3.up * _chestHeight;
_root.transform.position = chestWorld + dir * _forwardOffset;
// 빌보드 — 캔버스의 -Z(읽는 면)가 카메라를 향하도록 +Z를 카메라 반대로
_root.transform.rotation = Quaternion.LookRotation(-dir);
}
}

View File

@@ -0,0 +1,76 @@
using TMPro;
using UnityEngine;
// 화자(NPC) 옆에 떠 있는 World-space 대사 HUD 싱글턴.
// DialogPlayer가 대사 노드를 재생할 때 Show()로 화자 이름 + 대사를 표시한다.
//
// Placement(화자 옆 배치 + 빌보드) 로직을 담당한다. 원래 ChoiceHud에 있던 로직을 이리로 옮겼다.
// 자기 자신(transform)을 화자 옆으로 옮기므로, ChoiceHud를 이 오브젝트의 자식으로 두면 함께 따라온다.
// 주의: 이 오브젝트(GO)는 항상 활성 상태여야 한다(LateUpdate가 돌아야 하므로).
// 보이기/숨기기는 자식 패널(_panel)만 토글한다.
public class DialogHud : MonoBehaviour
{
public static DialogHud Instance { get; private set; }
[Header("Refs")]
[SerializeField] private GameObject _panel; // 대사 패널(토글 대상). 보통 이 오브젝트의 자식.
[SerializeField] private TMP_Text _speakerName;
[SerializeField] private TMP_Text _dialogueText;
[Header("Placement")]
[SerializeField] private float _chestHeight = 1.2f; // 화자 발 기준 가슴 높이
[SerializeField] private float _forwardOffset = 0.5f; // 화자→플레이어 방향으로 띄울 거리
private Transform _speakerTransform;
private void Awake()
{
if (Instance != null && Instance != this) { Destroy(gameObject); return; }
Instance = this;
Hide();
}
private void OnDestroy()
{
if (Instance == this) Instance = null;
}
public void Show(CharacterData speaker, string text)
{
_speakerTransform = speaker != null ? CharacterVoiceObject.Find(speaker)?.transform : null;
if (_speakerName != null)
_speakerName.text = speaker != null ? speaker.Name : string.Empty;
if (_dialogueText != null)
_dialogueText.text = text;
if (_panel != null) _panel.SetActive(true);
}
public void Hide()
{
if (_dialogueText != null) _dialogueText.text = string.Empty;
if (_speakerName != null) _speakerName.text = string.Empty;
if (_panel != null) _panel.SetActive(false);
_speakerTransform = null;
}
private void LateUpdate()
{
if (_speakerTransform == null || Camera.main == null) return;
var camTr = Camera.main.transform;
// 화자에서 플레이어 카메라로 향하는 수평 방향 (yaw만)
Vector3 toCam = camTr.position - _speakerTransform.position;
toCam.y = 0f;
if (toCam.sqrMagnitude < 0.0001f) return;
Vector3 dir = toCam.normalized;
Vector3 chestWorld = _speakerTransform.position + Vector3.up * _chestHeight;
transform.position = chestWorld + dir * _forwardOffset;
// 빌보드 — 캔버스의 -Z(읽는 면)가 카메라를 향하도록 +Z를 카메라 반대로
transform.rotation = Quaternion.LookRotation(-dir);
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 8c591cc9e4d86544fa1f82ba1732b43f

Binary file not shown.

View File

@@ -0,0 +1,156 @@
fileFormatVersion: 2
guid: 1516a7566570ca04983480d5b92504cc
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: WindowsStoreApps
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
customData:
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: c038b57f026442c44b4173b9cbc00906
guid: f227c1b28a0ee9842841e3bafbace858
folderAsset: yes
DefaultImporter:
externalObjects: {}

Binary file not shown.

View File

@@ -1,7 +1,6 @@
fileFormatVersion: 2
guid: d8ed44e79da1eed4d89009c073e6e325
folderAsset: yes
DefaultImporter:
guid: 00a7214a6ebcd1d40b2e3ed1013fb6e0
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:

Binary file not shown.

Binary file not shown.

View File

@@ -32,8 +32,17 @@ MonoBehaviour:
m_GraphNodeModels:
- rid: 6595524284503556358
- rid: 6595524284503556360
- rid: 6595524284503556372
- rid: 6595524284503556400
- rid: 6595524284503556411
- rid: 6595524284503556422
- rid: 6595524284503556433
m_GraphWireModels:
- rid: 6595524284503556361
- rid: 6595524284503556401
- rid: 6595524284503556412
- rid: 6595524284503556423
- rid: 6595524284503556434
m_GraphStickyNoteModels: []
m_GraphPlacematModels: []
m_GraphVariableModels: []
@@ -44,9 +53,9 @@ MonoBehaviour:
m_LastKnownBounds:
serializedVersion: 2
x: -3669
y: -991
width: 548
height: 289
y: -1209
width: 1948
height: 825
m_GraphElementMetaData:
- m_Guid:
m_Value0: 7662814040680088363
@@ -72,6 +81,78 @@ MonoBehaviour:
Hash: 116290fb6b2daff37b813830ed294738
m_Category: 2
m_Index: 0
- m_Guid:
m_Value0: 15671640390660357946
m_Value1: 11221916553219458534
m_HashGuid:
serializedVersion: 2
Hash: 3a7ff944e7d97cd9e6c5b81da641bc9b
m_Category: 0
m_Index: 2
- m_Guid:
m_Value0: 13515135955402345068
m_Value1: 1355052426770957864
m_HashGuid:
serializedVersion: 2
Hash: 6ccadd908b688fbb28c6b6b5001dce12
m_Category: 0
m_Index: 3
- m_Guid:
m_Value0: 1393753287722102840
m_Value1: 6232705800966287323
m_HashGuid:
serializedVersion: 2
Hash: 387035133b9b5713dbaf1c58e7047f56
m_Category: 2
m_Index: 1
- m_Guid:
m_Value0: 7764896221590497752
m_Value1: 9218689086081107789
m_HashGuid:
serializedVersion: 2
Hash: d8a9ac2df973c26b4d87a28ee15cef7f
m_Category: 0
m_Index: 4
- m_Guid:
m_Value0: 52785549062312245
m_Value1: 8434266933756262114
m_HashGuid:
serializedVersion: 2
Hash: 3511225d2d88bb00e2765def16890c75
m_Category: 2
m_Index: 2
- m_Guid:
m_Value0: 3990016803743100809
m_Value1: 4012493805232022109
m_HashGuid:
serializedVersion: 2
Hash: 896ff29a24635f375d624f54db3daf37
m_Category: 0
m_Index: 5
- m_Guid:
m_Value0: 15039017993145287063
m_Value1: 18135023995463065544
m_HashGuid:
serializedVersion: 2
Hash: 970122442f53b5d0c8dfc28a3d8cacfb
m_Category: 2
m_Index: 3
- m_Guid:
m_Value0: 11114221504715422241
m_Value1: 127332362361849342
m_HashGuid:
serializedVersion: 2
Hash: 21fa91a792a53d9afe45fde21b60c401
m_Category: 0
m_Index: 6
- m_Guid:
m_Value0: 15506158607897720936
m_Value1: 11124075213641582177
m_HashGuid:
serializedVersion: 2
Hash: 68f89b4619f130d76186d50b78a7609a
m_Category: 2
m_Index: 4
m_EntryPoint:
rid: 6595524284503556358
m_Graph:
@@ -138,7 +219,7 @@ MonoBehaviour:
serializedVersion: 2
Hash: 23eb2110c9aa46be4b980276711e5e70
m_Version: 2
m_Position: {x: -3454.8481, y: -991.3574}
m_Position: {x: -3428.9636, y: -1001.59784}
m_Title:
m_Tooltip:
m_NodePreviewModel:
@@ -217,7 +298,7 @@ MonoBehaviour:
- rid: 6595524284503556363
type: {class: 'Constant`1[[CharacterData, Assembly-CSharp]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
m_Value: {fileID: 0}
m_Value: {fileID: 11400000, guid: 47faf39975a3c214c923a3cbca747c5a, type: 2}
- rid: 6595524284503556365
type: {class: 'Constant`1[[GestureData, Assembly-CSharp]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
@@ -233,11 +314,11 @@ MonoBehaviour:
- rid: 6595524284503556368
type: {class: 'Constant`1[[System.Single, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
m_Value: 0
m_Value: 5
- rid: 6595524284503556369
type: {class: 'Constant`1[[System.Boolean, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
m_Value: 0
m_Value: 1
- rid: 6595524284503556370
type: {class: DialogLineNode, ns: WhaleAdventure.Dialog.GraphTool.Editor, asm: Assembly-CSharp-Editor}
data:
@@ -245,4 +326,585 @@ MonoBehaviour:
type: {class: 'Constant`1[[WhaleAdventure.Dialog.GraphTool.Editor.DialogText, Assembly-CSharp-Editor]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
m_Value:
Value:
Value: "\uC548\uB155 \uB09C \uACE0\uC591\uC774 1\uC774\uC57C. \uBC18\uAC00\uC6CC."
- rid: 6595524284503556372
type: {class: UserNodeModelImp, ns: Unity.GraphToolkit.Editor.Implementation, asm: Unity.GraphToolkit.Editor}
data:
m_Guid:
m_Value0: 15671640390660357946
m_Value1: 11221916553219458534
m_HashGuid:
serializedVersion: 2
Hash: 3a7ff944e7d97cd9e6c5b81da641bc9b
m_Version: 2
m_Position: {x: -3047.4932, y: -1004.93024}
m_Title:
m_Tooltip:
m_NodePreviewModel:
rid: -2
m_State: 0
m_InputConstantsById:
m_KeyList:
- __option_ChoiceCount
- Speaker
- TalkText
- Gesture
- Expression
- Voice
- LineDuration
- LookAtPlayer
- ChoiceQuestion
- Choice0Text
- Choice1Text
m_ValueList:
- rid: 6595524284503556374
- rid: 6595524284503556375
- rid: 6595524284503556376
- rid: 6595524284503556377
- rid: 6595524284503556378
- rid: 6595524284503556379
- rid: 6595524284503556380
- rid: 6595524284503556381
- rid: 6595524284503556397
- rid: 6595524284503556398
- rid: 6595524284503556399
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: 6595524284503556382
- rid: 6595524284503556374
type: {class: 'Constant`1[[System.Int32, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
m_Value: 2
- rid: 6595524284503556375
type: {class: 'Constant`1[[CharacterData, Assembly-CSharp]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
m_Value: {fileID: 11400000, guid: 47faf39975a3c214c923a3cbca747c5a, type: 2}
- rid: 6595524284503556376
type: {class: 'Constant`1[[WhaleAdventure.Dialog.GraphTool.Editor.DialogText, Assembly-CSharp-Editor]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
m_Value:
Value: "\uC6B0\uB9AC\uB294 \uC74C\uC545\uC744 \uC88B\uC544\uD574. \uAC19\uC774
\uB9AC\uB4EC\uAC8C\uC784 \uD560\uB798?"
- rid: 6595524284503556377
type: {class: 'Constant`1[[GestureData, Assembly-CSharp]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
m_Value: {fileID: 0}
- rid: 6595524284503556378
type: {class: 'Constant`1[[ExpressionData, Assembly-CSharp]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
m_Value: {fileID: 0}
- rid: 6595524284503556379
type: {class: 'Constant`1[[VoiceClip, Assembly-CSharp]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
m_Value: {fileID: 0}
- rid: 6595524284503556380
type: {class: 'Constant`1[[System.Single, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
m_Value: 5
- rid: 6595524284503556381
type: {class: 'Constant`1[[System.Boolean, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
m_Value: 0
- rid: 6595524284503556382
type: {class: DialogLineNode, ns: WhaleAdventure.Dialog.GraphTool.Editor, asm: Assembly-CSharp-Editor}
data:
- rid: 6595524284503556397
type: {class: 'Constant`1[[WhaleAdventure.Dialog.GraphTool.Editor.DialogText, Assembly-CSharp-Editor]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
m_Value:
Value: "\uB9AC\uB4EC\uAC8C\uC784 \uD560\uAC83\uC778\uAC00?"
- rid: 6595524284503556398
type: {class: 'Constant`1[[WhaleAdventure.Dialog.GraphTool.Editor.DialogText, Assembly-CSharp-Editor]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
m_Value:
Value: "\uD560\uB798"
- rid: 6595524284503556399
type: {class: 'Constant`1[[WhaleAdventure.Dialog.GraphTool.Editor.DialogText, Assembly-CSharp-Editor]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
m_Value:
Value: "\uB9D0\uB798"
- rid: 6595524284503556400
type: {class: UserNodeModelImp, ns: Unity.GraphToolkit.Editor.Implementation, asm: Unity.GraphToolkit.Editor}
data:
m_Guid:
m_Value0: 13515135955402345068
m_Value1: 1355052426770957864
m_HashGuid:
serializedVersion: 2
Hash: 6ccadd908b688fbb28c6b6b5001dce12
m_Version: 2
m_Position: {x: -2446.501, y: -1209.3643}
m_Title:
m_Tooltip:
m_NodePreviewModel:
rid: -2
m_State: 0
m_InputConstantsById:
m_KeyList:
- __option_ChoiceCount
- Speaker
- TalkText
- Gesture
- Expression
- Voice
- LineDuration
- LookAtPlayer
m_ValueList:
- rid: 6595524284503556402
- rid: 6595524284503556403
- rid: 6595524284503556404
- rid: 6595524284503556405
- rid: 6595524284503556406
- rid: 6595524284503556407
- rid: 6595524284503556408
- rid: 6595524284503556409
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: 6595524284503556410
- rid: 6595524284503556401
type: {class: WireModel, ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
m_Guid:
m_Value0: 1393753287722102840
m_Value1: 6232705800966287323
m_HashGuid:
serializedVersion: 2
Hash: 387035133b9b5713dbaf1c58e7047f56
m_Version: 2
m_FromPortReference:
m_NodeModelGuid:
m_Value0: 15671640390660357946
m_Value1: 11221916553219458534
m_NodeModelHashGuid:
serializedVersion: 2
Hash: 3a7ff944e7d97cd9e6c5b81da641bc9b
m_UniqueId: Choice0Out
m_PortDirection: 2
m_PortOrientation: 0
m_Title: "Choice 1 \u2192"
m_ToPortReference:
m_NodeModelGuid:
m_Value0: 13515135955402345068
m_Value1: 1355052426770957864
m_NodeModelHashGuid:
serializedVersion: 2
Hash: 6ccadd908b688fbb28c6b6b5001dce12
m_UniqueId: In
m_PortDirection: 1
m_PortOrientation: 0
m_Title:
- rid: 6595524284503556402
type: {class: 'Constant`1[[System.Int32, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
m_Value: 0
- rid: 6595524284503556403
type: {class: 'Constant`1[[CharacterData, Assembly-CSharp]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
m_Value: {fileID: 11400000, guid: 47faf39975a3c214c923a3cbca747c5a, type: 2}
- rid: 6595524284503556404
type: {class: 'Constant`1[[WhaleAdventure.Dialog.GraphTool.Editor.DialogText, Assembly-CSharp-Editor]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
m_Value:
Value: "\uACE0\uB9C8\uC5B4. \uAC19\uC774 \uC990\uAC81\uAC8C \uB180\uC544\uBCF4\uC790."
- rid: 6595524284503556405
type: {class: 'Constant`1[[GestureData, Assembly-CSharp]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
m_Value: {fileID: 0}
- rid: 6595524284503556406
type: {class: 'Constant`1[[ExpressionData, Assembly-CSharp]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
m_Value: {fileID: 0}
- rid: 6595524284503556407
type: {class: 'Constant`1[[VoiceClip, Assembly-CSharp]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
m_Value: {fileID: 0}
- rid: 6595524284503556408
type: {class: 'Constant`1[[System.Single, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
m_Value: 5
- rid: 6595524284503556409
type: {class: 'Constant`1[[System.Boolean, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
m_Value: 0
- rid: 6595524284503556410
type: {class: DialogLineNode, ns: WhaleAdventure.Dialog.GraphTool.Editor, asm: Assembly-CSharp-Editor}
data:
- rid: 6595524284503556411
type: {class: UserNodeModelImp, ns: Unity.GraphToolkit.Editor.Implementation, asm: Unity.GraphToolkit.Editor}
data:
m_Guid:
m_Value0: 7764896221590497752
m_Value1: 9218689086081107789
m_HashGuid:
serializedVersion: 2
Hash: d8a9ac2df973c26b4d87a28ee15cef7f
m_Version: 2
m_Position: {x: -2475, y: -728.5264}
m_Title:
m_Tooltip:
m_NodePreviewModel:
rid: -2
m_State: 0
m_InputConstantsById:
m_KeyList:
- __option_ChoiceCount
- Speaker
- TalkText
- Gesture
- Expression
- Voice
- LineDuration
- LookAtPlayer
m_ValueList:
- rid: 6595524284503556413
- rid: 6595524284503556414
- rid: 6595524284503556415
- rid: 6595524284503556416
- rid: 6595524284503556417
- rid: 6595524284503556418
- rid: 6595524284503556419
- rid: 6595524284503556420
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: 6595524284503556421
- rid: 6595524284503556412
type: {class: WireModel, ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
m_Guid:
m_Value0: 52785549062312245
m_Value1: 8434266933756262114
m_HashGuid:
serializedVersion: 2
Hash: 3511225d2d88bb00e2765def16890c75
m_Version: 2
m_FromPortReference:
m_NodeModelGuid:
m_Value0: 15671640390660357946
m_Value1: 11221916553219458534
m_NodeModelHashGuid:
serializedVersion: 2
Hash: 3a7ff944e7d97cd9e6c5b81da641bc9b
m_UniqueId: Choice1Out
m_PortDirection: 2
m_PortOrientation: 0
m_Title: "Choice 2 \u2192"
m_ToPortReference:
m_NodeModelGuid:
m_Value0: 7764896221590497752
m_Value1: 9218689086081107789
m_NodeModelHashGuid:
serializedVersion: 2
Hash: d8a9ac2df973c26b4d87a28ee15cef7f
m_UniqueId: In
m_PortDirection: 1
m_PortOrientation: 0
m_Title:
- rid: 6595524284503556413
type: {class: 'Constant`1[[System.Int32, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
m_Value: 0
- rid: 6595524284503556414
type: {class: 'Constant`1[[CharacterData, Assembly-CSharp]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
m_Value: {fileID: 11400000, guid: 47faf39975a3c214c923a3cbca747c5a, type: 2}
- rid: 6595524284503556415
type: {class: 'Constant`1[[WhaleAdventure.Dialog.GraphTool.Editor.DialogText, Assembly-CSharp-Editor]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
m_Value:
Value: "\uC2E4\uB9DD\uC774\uC57C."
- rid: 6595524284503556416
type: {class: 'Constant`1[[GestureData, Assembly-CSharp]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
m_Value: {fileID: 0}
- rid: 6595524284503556417
type: {class: 'Constant`1[[ExpressionData, Assembly-CSharp]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
m_Value: {fileID: 0}
- rid: 6595524284503556418
type: {class: 'Constant`1[[VoiceClip, Assembly-CSharp]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
m_Value: {fileID: 0}
- rid: 6595524284503556419
type: {class: 'Constant`1[[System.Single, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
m_Value: 5
- rid: 6595524284503556420
type: {class: 'Constant`1[[System.Boolean, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
m_Value: 0
- rid: 6595524284503556421
type: {class: DialogLineNode, ns: WhaleAdventure.Dialog.GraphTool.Editor, asm: Assembly-CSharp-Editor}
data:
- rid: 6595524284503556422
type: {class: UserNodeModelImp, ns: Unity.GraphToolkit.Editor.Implementation, asm: Unity.GraphToolkit.Editor}
data:
m_Guid:
m_Value0: 3990016803743100809
m_Value1: 4012493805232022109
m_HashGuid:
serializedVersion: 2
Hash: 896ff29a24635f375d624f54db3daf37
m_Version: 2
m_Position: {x: -2056.51, y: -1207.8608}
m_Title:
m_Tooltip:
m_NodePreviewModel:
rid: -2
m_State: 0
m_InputConstantsById:
m_KeyList:
- __option_ChoiceCount
- Speaker
- TalkText
- Gesture
- Expression
- Voice
- LineDuration
- LookAtPlayer
m_ValueList:
- rid: 6595524284503556424
- rid: 6595524284503556425
- rid: 6595524284503556426
- rid: 6595524284503556427
- rid: 6595524284503556428
- rid: 6595524284503556429
- rid: 6595524284503556430
- rid: 6595524284503556431
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: 6595524284503556432
- rid: 6595524284503556423
type: {class: WireModel, ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
m_Guid:
m_Value0: 15039017993145287063
m_Value1: 18135023995463065544
m_HashGuid:
serializedVersion: 2
Hash: 970122442f53b5d0c8dfc28a3d8cacfb
m_Version: 2
m_FromPortReference:
m_NodeModelGuid:
m_Value0: 13515135955402345068
m_Value1: 1355052426770957864
m_NodeModelHashGuid:
serializedVersion: 2
Hash: 6ccadd908b688fbb28c6b6b5001dce12
m_UniqueId: Out
m_PortDirection: 2
m_PortOrientation: 0
m_Title:
m_ToPortReference:
m_NodeModelGuid:
m_Value0: 3990016803743100809
m_Value1: 4012493805232022109
m_NodeModelHashGuid:
serializedVersion: 2
Hash: 896ff29a24635f375d624f54db3daf37
m_UniqueId: In
m_PortDirection: 1
m_PortOrientation: 0
m_Title:
- rid: 6595524284503556424
type: {class: 'Constant`1[[System.Int32, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
m_Value: 0
- rid: 6595524284503556425
type: {class: 'Constant`1[[CharacterData, Assembly-CSharp]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
m_Value: {fileID: 11400000, guid: 47faf39975a3c214c923a3cbca747c5a, type: 2}
- rid: 6595524284503556426
type: {class: 'Constant`1[[WhaleAdventure.Dialog.GraphTool.Editor.DialogText, Assembly-CSharp-Editor]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
m_Value:
Value: "\uC900\uBE44\uAC00 \uB418\uBA74 \uC2DC\uC791\uBC84\uD2BC\uC744
\uB20C\uB7EC\uC918."
- rid: 6595524284503556427
type: {class: 'Constant`1[[GestureData, Assembly-CSharp]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
m_Value: {fileID: 0}
- rid: 6595524284503556428
type: {class: 'Constant`1[[ExpressionData, Assembly-CSharp]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
m_Value: {fileID: 0}
- rid: 6595524284503556429
type: {class: 'Constant`1[[VoiceClip, Assembly-CSharp]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
m_Value: {fileID: 0}
- rid: 6595524284503556430
type: {class: 'Constant`1[[System.Single, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
m_Value: 5
- rid: 6595524284503556431
type: {class: 'Constant`1[[System.Boolean, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
m_Value: 0
- rid: 6595524284503556432
type: {class: DialogLineNode, ns: WhaleAdventure.Dialog.GraphTool.Editor, asm: Assembly-CSharp-Editor}
data:
- rid: 6595524284503556433
type: {class: UserNodeModelImp, ns: Unity.GraphToolkit.Editor.Implementation, asm: Unity.GraphToolkit.Editor}
data:
m_Guid:
m_Value0: 11114221504715422241
m_Value1: 127332362361849342
m_HashGuid:
serializedVersion: 2
Hash: 21fa91a792a53d9afe45fde21b60c401
m_Version: 2
m_Position: {x: -2099, y: -723.14813}
m_Title:
m_Tooltip:
m_NodePreviewModel:
rid: -2
m_State: 0
m_InputConstantsById:
m_KeyList:
- __option_ChoiceCount
- Speaker
- TalkText
- Gesture
- Expression
- Voice
- LineDuration
- LookAtPlayer
m_ValueList:
- rid: 6595524284503556435
- rid: 6595524284503556436
- rid: 6595524284503556437
- rid: 6595524284503556438
- rid: 6595524284503556439
- rid: 6595524284503556440
- rid: 6595524284503556441
- rid: 6595524284503556442
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: 6595524284503556443
- rid: 6595524284503556434
type: {class: WireModel, ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
m_Guid:
m_Value0: 15506158607897720936
m_Value1: 11124075213641582177
m_HashGuid:
serializedVersion: 2
Hash: 68f89b4619f130d76186d50b78a7609a
m_Version: 2
m_FromPortReference:
m_NodeModelGuid:
m_Value0: 7764896221590497752
m_Value1: 9218689086081107789
m_NodeModelHashGuid:
serializedVersion: 2
Hash: d8a9ac2df973c26b4d87a28ee15cef7f
m_UniqueId: Out
m_PortDirection: 2
m_PortOrientation: 0
m_Title:
m_ToPortReference:
m_NodeModelGuid:
m_Value0: 11114221504715422241
m_Value1: 127332362361849342
m_NodeModelHashGuid:
serializedVersion: 2
Hash: 21fa91a792a53d9afe45fde21b60c401
m_UniqueId: In
m_PortDirection: 1
m_PortOrientation: 0
m_Title:
- rid: 6595524284503556435
type: {class: 'Constant`1[[System.Int32, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
m_Value: 0
- rid: 6595524284503556436
type: {class: 'Constant`1[[CharacterData, Assembly-CSharp]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
m_Value: {fileID: 11400000, guid: 47faf39975a3c214c923a3cbca747c5a, type: 2}
- rid: 6595524284503556437
type: {class: 'Constant`1[[WhaleAdventure.Dialog.GraphTool.Editor.DialogText, Assembly-CSharp-Editor]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
m_Value:
Value: "\uB098\uC911\uC5D0 \uD6C4\uD68C\uD558\uAC8C \uB420\uAEC4?"
- rid: 6595524284503556438
type: {class: 'Constant`1[[GestureData, Assembly-CSharp]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
m_Value: {fileID: 0}
- rid: 6595524284503556439
type: {class: 'Constant`1[[ExpressionData, Assembly-CSharp]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
m_Value: {fileID: 0}
- rid: 6595524284503556440
type: {class: 'Constant`1[[VoiceClip, Assembly-CSharp]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
m_Value: {fileID: 0}
- rid: 6595524284503556441
type: {class: 'Constant`1[[System.Single, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
m_Value: 5
- rid: 6595524284503556442
type: {class: 'Constant`1[[System.Boolean, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
m_Value: 0
- rid: 6595524284503556443
type: {class: DialogLineNode, ns: WhaleAdventure.Dialog.GraphTool.Editor, asm: Assembly-CSharp-Editor}
data:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 51d46e08a5aa2b04fa0c3f1cb854267c
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.