Text Animator 수동 통합 방법

쉿. 여기에서 당신의 대화 시스템이 이미 통합되어 있는지 확인하세요: 통합 플러그인 및 대화 시스템.

모든 대화 시스템은 다르지만 한 가지는 같습니다: 텍스트 설정. 이론적으로 당신은 단순히 “ 를 교체하여 플러그인을 통합할 수 있습니다tmpro.text=dialogue;” 를 “typewriter.ShowText(dialogue);” 로, 하지만 여기에 다양한 경우를 다룬 더 확장된 안내가 있습니다.

주의하세요 강력히 권장됩니다 플러그인의 타이프라이터(사용할 계획이라면)를 비활성화하고 TextAnimator의 것을 사용하세요 (그래야 모든 기능을 사용할 수 있습니다).

더 설명이 필요하거나 도움이 필요하면 주저하지 말고 저희에게 연락하세요.


여기 서면 가이드도 있습니다.

당신의 대화 시스템/플러그인이…

… ⚠️ 텍스트를 동적으로 표시한다 (타이프라이터가 있다)

✔️ 플러그인의 타이프라이터를 TextAnimator의 것으로 교체하세요.

❌ 대화 시스템의 타이프라이터를 교체할 수 없다면, 값 “간편 통합 사용” 를 false(TextAnimator 컴포넌트)로 설정하고 애니메이션이 제대로 작동하는지 확인해 보세요(수많은 대화 시스템에 따라 성공이 보장되지는 않습니다). 하지만 이 옵션은 권장되지 않습니다. 성능이 크게 달라질 수 있으니 내장된 타이프라이터를 사용하세요.

자주 묻는 질문

왜 내장 타이프라이터를 사용해야 하나요?

플러그인의 의도된 호환성을 보장하는 것 이상으로, 성능상의 이유로 내장 타이프라이터(TextAnimatorPlayer)를 사용해야 합니다.

  • TextMeshPro 텍스트를 변경할 때마다 포매팅을 계산하고 메쉬(법선, 탄젠트, UV 등)를 업데이트해야 합니다. 이제 타이프라이터로 글자를 추가할 때마다 이 계산을 한다고 상상해 보세요… :/ (Text Animator를 사용하든 안 하든 상관없이)

  • 이 때문에 TMPro는 “maxVisibleCharacters” 변수를 추가했습니다; 전체 텍스트를 한 번 설정한 다음 보이는 글자 수를 시간에 따라 증가시키면 됩니다. Text Animator를 사용하면 tmproText.maxVisibleCharacters++를 호출하는 대신textAnimator.maxVisibleCharacters” 를 단순히 호출할 수 있으며, 유사하게 작동하면서 모든 이펙트도 관리합니다.

내 타이프라이터는 텍스트를 한 번 설정하고 보이는 글자 수만 증가시키는데, 사용해도 되나요?

가능하지만 “tmpro.maxVisibleCharacters++” 부분을 수정하여 textAnimator.maxVisibleCharacters++로 교체해야 합니다. 또한 TextAnimatorPlayer가 처리하는 TextAnimator의 이벤트와 기능들을 구현해야 하며, 구현이 없으면 작동하지 않습니다.

… 커스텀 액션을 가지고 있다

“커스텀 액션”은 텍스트를 표시하는 동안 수행되는 동작(예: 플레이어 입력을 기다리는 것 등)을 의미합니다.

  • ✔️ 만약 당신이 TextAnimatorPlayer을 사용하고 있다면: 여기서 커스텀 액션을 구현하는 방법을 읽어보세요: 사용자 정의 액션 작성 (C#)

  • ❌ 만약 당신이 TextAnimatorPlayer를 사용할 수 없다면: 대화 시스템의 타이프라이터에 이미 커스텀 액션이 존재하므로 어떤 커스텀 액션도 구현할 필요가 없습니다. 그러나 외부 타이프라이터 사용은 권장되지 않으며 프로젝트 성능에 영향을 줄 수 있습니다.

… 자체 태그/포매팅을 가지고 있다

✔️ 이름/관리용 태그

이 태그들은 대화 시스템이 텍스트 문자열을 구성하는 데 사용되어야 합니다. 이들은 문제를 일으키지 않으므로(여는/닫는 문자 포함) 교체하거나 수정할 필요가 없습니다. 가상의 “이름/관리” 태그 예시:

  • {actor1} → 말하고 있는 첫 번째 캐릭터의 이름을 텍스트에 씁니다.

  • |getValue("eatenApple")| → 텍스트에 변수를 씁니다

  • 텍스트 예시

"{actor1}, why did you eat |getValue("eatenApple")| apples?! Omg" → “Karen, why did you eat 1234567 apples?! Omg” → 보시다시피 최종 텍스트에는 태그가 표시되지 않습니다. 이 경우는 Text Animator에서 별도 구현 없이 작동합니다.

⚠️ 텍스트 스타일용 태그

대화 시스템에 <bold> 와 같은 스타일 텍스트 태그가 있다면, 대화 시스템의 태그가 Text Animator와 Text Mesh Pro의 태그와 일치하는지 확인하세요 (이전 예시에서는 <bold><b>).

로 교체하세요)

⚠️ 커스텀 기능용 태그 사용자 정의 액션 작성 (C#)

대화 시스템에 (예: “오디오 재생”과 같은) 어떤 동작을 수행하는 태그가 있다면, 여기를 확인하세요: 타이핑 시 대기 액션

Last updated