다이얼로그 가운데 정렬

This commit is contained in:
2026-07-31 12:47:31 +09:00
parent 4dc22eb32b
commit 5bf43f6464
10 changed files with 66 additions and 10 deletions

View File

@@ -18,12 +18,19 @@ public class TypewriterStyle : ScriptableObject
[Tooltip("문장 끝(. ! ? … 。) 뒤에 추가로 쉬는 시간(초)")]
[Min(0f)] public float SentencePause = 0.3f;
[Header("Color")]
[Header("Text")]
[Tooltip("켜면 글자 색을 아래 색으로 덮는다. 끄면 USS에 지정된 색 그대로")]
public bool OverrideColor;
public Color TextColor = Color.white;
[Tooltip("켜면 대사 정렬을 아래 값으로 덮는다. 끄면 USS에 지정된 정렬 그대로. " +
"서술처럼 화자 없이 가운데에 띄우는 연출에 쓴다")]
public bool OverrideAlign;
[Tooltip("대사 텍스트 정렬 — 세로·가로가 함께 정해진다")]
public TextAnchor TextAlign = TextAnchor.MiddleCenter;
[Header("Emphasis")]
[Tooltip("대사에 [[강조]] ")]
public Color EmphasisColor = new Color(1f, 0.23f, 0.19f);

View File

@@ -136,12 +136,18 @@ private void ApplyState()
{
_dialogText.text = _typewriter.Composed;
// 스타일이 색을 덮으면 인라인으로 지정하고, 아니면 인라인을 걷어 USS 으로 되돌린다
// 스타일이 덮도록 지정한 항목만 인라인으로 고, 아니면 인라인을 걷어 USS 으로 되돌린다
var style = _typewriter.Style;
if (style != null && style.OverrideColor)
_dialogText.style.color = style.TextColor;
else
_dialogText.style.color = StyleKeyword.Null;
if (style != null && style.OverrideAlign)
_dialogText.style.unityTextAlign = style.TextAlign;
else
_dialogText.style.unityTextAlign = StyleKeyword.Null;
}
if (_panel != null)