수정 사항

This commit is contained in:
2026-08-09 13:58:32 +09:00
parent 8a4a001fe0
commit 120233faac
28 changed files with 3471 additions and 73 deletions

View File

@@ -294,7 +294,8 @@ private async Awaitable PlayBeat(StoryBeat beat)
if (SoundManager.Instance != null && !keepBgmOnEnd)
SoundManager.Instance.ClearOverrideBGM();
// 앞/옆 그림은 대화 전용 오버레이라 대화가 끝나면 무조건 걷는다
// 장면 그림과 앞/옆 그림은 대화 전용이라 대화가 끝나면 무조건 걷는다
if (SceneScreen.Instance != null) SceneScreen.Instance.Hide();
if (FrontSprite.Instance != null) FrontSprite.Instance.Hide();
if (SideSprite.Instance != null) SideSprite.Instance.Hide();
@@ -393,13 +394,15 @@ private async Awaitable<bool> PlayNode(DialogNode node)
return false;
}
// 노드가 지정한 무대 연출(포즈 + 앞/옆 그림)을 반영한다. 의 수명 규칙이 각각 다르다:
// 노드가 지정한 무대 연출을 반영한다. 의 수명 규칙이 각각 다르다:
// Pose — 지속. '변경 없음'이 기본이라 인물이 서 있는 동안 다시 꽂을 필요가 없다
// SceneScreen — 지정한 대사에서만. 비우면 사라진다 (배경 앞·캐릭터 뒤 장면 그림)
// FrontSprite — 1회성. 지정 안 한 노드에선 사라진다 ("이의있음!" 같은 번쩍 연출)
// SideSprite — 지정한 대사에서만. 비우면 사라진다
// 뒤의 둘은 Show(null)이 곧 Hide라 그대로 넘기면 두 경우가 한 줄로 처리된다.
// Pose 말고 셋은 Show(null)이 곧 Hide라, 노드 값을 그대로 넘기면 두 경우가 한 줄로 처리된다.
private void ApplyStageVisuals(DialogNode node)
{
if (SceneScreen.Instance != null) SceneScreen.Instance.Show(node.SceneScreen);
if (FrontSprite.Instance != null) FrontSprite.Instance.Show(node.FrontSprite);
if (SideSprite.Instance != null) SideSprite.Instance.Show(node.SideSprite);