글로벌 오브젝트 추가
This commit is contained in:
@@ -1,9 +1,20 @@
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
// 노드의 역할. 서로 배타적이므로 플래그 여러 개가 아니라 하나의 종류로 둔다.
|
||||
public enum DialogNodeKind
|
||||
{
|
||||
[InspectorName("대사")] Line, // 평범한 대사 노드
|
||||
[InspectorName("호감도 분기")] AffectionCheck, // 대사 없이 조건만 검사해 즉시 라우팅
|
||||
[InspectorName("종료")] End, // 대화를 끝낸다 (BGM 처리만 정함)
|
||||
}
|
||||
|
||||
[CreateAssetMenu(menuName = "Communication/Dialog Node")]
|
||||
public class DialogNode : ScriptableObject
|
||||
{
|
||||
[Tooltip("이 노드의 역할. 그래프에서 어떤 노드를 썼는지에 따라 임포터가 정한다")]
|
||||
public DialogNodeKind Kind = DialogNodeKind.Line;
|
||||
|
||||
[Header("Speaker")]
|
||||
public CharacterData Speaker;
|
||||
|
||||
@@ -18,7 +29,13 @@ public class DialogNode : ScriptableObject
|
||||
// 진행은 항상 플레이어 입력(OnDialogNext)으로 넘어간다.
|
||||
|
||||
[Header("Presentation")]
|
||||
public AudioClip Bgm; // 있으면 이 대사부터 전용 BGM 재생, 비어있으면 기본 BGM으로 복귀
|
||||
[Tooltip("있으면 이 대사부터 이 BGM으로 갈아탄다. 비우면 변경 없음 — " +
|
||||
"다시 바꾸기 전까지 계속 이어진다")]
|
||||
public AudioClip Bgm;
|
||||
|
||||
[Tooltip("이 대사가 시작될 때 한 번 재생할 효과음 (문 여는 소리, 쿵 소리 등). " +
|
||||
"BGM과 달리 이어지지 않고 1회성이다")]
|
||||
public AudioClip Sfx;
|
||||
|
||||
[Tooltip("이 대사만의 타이핑 연출(속도·글자색·타이핑 사운드). " +
|
||||
"비우면 DialogHud의 기본 스타일을 쓴다")]
|
||||
@@ -36,17 +53,18 @@ public class DialogNode : ScriptableObject
|
||||
public List<HiddenBranch> HiddenBranches = new();
|
||||
|
||||
[Header("Affection Branch")]
|
||||
[Tooltip("켜면 이 노드는 대사 없이 호감도 조건만 검사해 즉시 라우팅한다: " +
|
||||
"조건을 만족하면 AffectionPassBranch로, 아니면 Next로")]
|
||||
public bool AffectionCheck;
|
||||
|
||||
[Tooltip("검사할 호감도 조건들 (캐릭터·연산자·값 + 다음 조건과의 and/or). " +
|
||||
[Tooltip("(Kind = 호감도 분기 전용) 검사할 호감도 조건들 (캐릭터·연산자·값 + 다음 조건과의 and/or). " +
|
||||
"캐릭터를 비우면 대화 주인 NPC. AND가 OR보다 우선. 비어 있으면 무조건 통과")]
|
||||
public List<AffectionRequirement> AffectionRequirements = new();
|
||||
|
||||
[Tooltip("조건을 만족했을 때 갈 노드 (실패하면 Next로)")]
|
||||
public DialogNode AffectionPassBranch;
|
||||
|
||||
[Header("End")]
|
||||
[Tooltip("(Kind = 종료 전용) 켜면 대화가 끝나도 마지막에 재생 중이던 BGM을 유지한다. " +
|
||||
"끄면 장소 BGM으로 복귀. 종료 노드마다 따로 정할 수 있어서 분기별로 다르게 끝낼 수 있다")]
|
||||
public bool KeepBgmOnEnd;
|
||||
|
||||
[Header("ChoiceQuestion")]
|
||||
[TextArea(2,5)] public string ChoiceQuestion;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user