텍스트 설정

텍스트 애니메이터에 텍스트를 설정하는 방법은 두 가지 UI 시스템에서 가능합니다:

circle-info

이 페이지에는 이미 설치 및 빠른 시작에 있는 일부 정보가 포함되어 있지만, 각 시스템 및 일반적인 사용에 대한 다른 세부사항과 제안들도 포함되어 있습니다. 반드시 텍스트 설정 섹션을 읽어보세요!


UI 툴킷

circle-check

Text Mesh Pro

circle-check
circle-exclamation

코드로 텍스트를 설정할 때의 모범 사례

코드로 TextMeshPro 객체에 텍스트를 설정할 때는 TMPro 대신 Text Animator의 스크립트를 참조하세요. 예:

using UnityEngine;
using TMPro; 
using Febucci.TextAnimatorForUnity.TextMeshPro; // <- Text Animator의 네임스페이스를 임포트

public class ExampleScript : MonoBehaviour
{
    [SerializeField] TMP_Text textMeshPro;
    [SerializeField] TextAnimator_TMP textAnimator;

    void Start()
    {
        // 🚫 하지 말 것: TMPro를 통해 텍스트 설정
        textMeshPro.SetText("<wave>hello");

        // ✅ 할 것: Text Animator를 통해 직접 텍스트 설정
        textAnimator.SetText("<wave>hello");
    }

}
circle-info

참고: TMPro를 참조해도 동작은 하지만, TextAnimator로 텍스트를 설정하면 텍스트에 대해 더 많은 제어가 가능하므로 통합이 더 잘됩니다.


모범 사례

전체 텍스트/대사는 한 번만 설정하세요

가능하면 텍스트를 한 번만 설정하고, 타입라이터/가시성 메서드를 사용해 표시 방식을 제어하세요.

circle-info

정말로 나중에 텍스트를 추가해야 한다면 "textAnimator.AppendText" 메서드를 사용할 수 있습니다.

chevron-righthashtag

캐릭터가 "Helloooo how are you doing?"이라고 말하고 각 글자마다 표시하고 싶다면, 단순히 다음과 같이 하세요: typewriter.ShowText("Hellooooo how are you doing?"); 그게 전부입니다! 글자를 동적으로 표시 및 숨기기


동적 문자열을 구성하는 경우에도 타입라이터/애니메이터에 값을 설정하기 전에 해당 문자열을 만들 수 있습니다.

(대화 시스템을 사용하고 있다면, 그들이 대신 이 작업을 해줄 것입니다 - 걱정하지 마세요! 통합)

chevron-right왜 전체 텍스트를 한 번에 설정하고 문자별로 설정하지 않아야 하나요?hashtag

성능 때문입니다! (Text Animator가 없어도 마찬가지입니다.)

텍스트를 설정할 때마다 TextMeshPro나 UI 툴킷은 메시, 위치 등 계산을 수행해야 하고, Text Animator는 문자 지속시간 등을 다시 계산해야 합니다. 즉 초당 여러 번(예: 글자를 추가할 때) 변경하면 이 계산이 매번 수행됩니다.

문자를 하나씩 표시하려면 전체 텍스트를 한 번 설정한 다음 타입라이터를 시작하면 됩니다: 글자를 동적으로 표시 및 숨기기