글자를 동적으로 표시 및 숨기기
타이프라이터를 사용하여 글자를 동적으로 표시하고 숨길 수 있습니다, 구두점, 문자 등 다양한 종류의 문자에 대해 다른 일시 중지 시간을 선택하고 이벤트를 트리거하는 등 다양한 동작을 설정할 수 있습니다.
텍스트 표시
그 타이프라이터는 일반 설정과 이벤트 리스너를 포함하며, 서로 다른 일시 중지/타이밍 모드를 허용합니다:
문자 단위: 한 글자씩 차례로 표시합니다.
단어 단위: 텍스트를 단어 단위로 진행합니다.
이 새로운 구조(3.0부터)는 개발 중에 타이프라이터 타이밍을 변경하더라도 이벤트 참조와 설정을 유지할 수 있게 해줍니다! <3
타이프라이터는 다음과 같이 보일 것입니다:
검사기(Inspector)의 TypewriterComponent에서:

UI 빌더의 AnimatedLabel에서:

타이밍 스크립터블 오브젝트를 반드시 할당하세요. 그렇지 않으면 타이프라이터가 텍스트 전체를 즉시 표시합니다!
타이프라이터를 시작하는 주요 방법은 두 가지입니다:
A) 코드로 (권장)
타이프라이터를 사용하려면, 해당 컴포넌트에 텍스트를 코드로 직접 설정하는 것이 권장됩니다.
TextMeshPro를 사용 중이라면, TMPro나 Text Animator를 참조하는 스크립트( 텍스트 설정)를 교체하고 대신 Febucci.TextAnimatorForUnity.TypewriterComponent를 참조하세요 그 대신.
❌ 다음과 같이 하지 마세요: “
tmproText.text = textValue;” , 또는 "textAnimator.SetText(textValue);"✅ 다음과 같이 하세요:
typewriter.ShowText(textValue);
UI 툴킷을 통해, AnimatedLabel 에는 이미 "Typewriter" 값이 있어 상호작용할 수 있습니다!
타이핑 딜레이만 할당되어 있으면 추가로 할 일은 없습니다.
B) 자동 인식
위 단계를 따르지 않은 경우에도, Typewriter 컴포넌트를 추가했거나 UI 툴킷의 AnimatedLabel을 통해 "Timings"를 설정한 경우 TextAnimator는 자동으로 타이프라이터를 시작하려고 시도합니다.
쉬운 통합(Easy Integration)은 변경 사항을 먼저 발견해야 하므로 한 프레임 늦게 발생할 수 있습니다(이는 보통 이전 프레임에 수행된 작업을 발견한 뒤 타이프라이터를 시작하기 때문입니다). 이로 인해 문제가 발생하면, 위 단계를 따르거나 A) 코드로 (권장)를 확인하세요 문제 해결
글자 제어
타이핑 시작 및 중지
컴포넌트의 검사기(Inspector) 내부에서 타이프라이터 시작 트리거 방식을 제어하는 몇 가지 옵션을 찾을 수 있습니다:
타이프라이터 시작 모드: 타이프라이터가 글자 표시를 언제 시작할지 지정합니다.
스크립트에서만
타이프라이터는 다음을 호출하여서만 시작할 수 있습니다 TextAnimatorPlayer.StartShowingText()
OnEnable
gameObject가 활성화될 때마다 타이프라이터가 시작됩니다
OnShowText
새 텍스트가 설정되자마자 타이프라이터가 시작됩니다 (“텍스트 표시” 섹션에서 설명한 대로)
모든 이벤트로부터 자동
위의 모든 것
시작 시 타이핑 속도 재설정: 새 텍스트가 표시될 때마다 타이프라이터 속도를 1로 재설정하려면 true로 설정하세요. 그렇지 않으면 마지막에 사용한 속도를 저장합니다.
typewriter.StopShowingText()를 호출하여 언제든지 타이프라이터를 일시중지할 수 있습니다 typewriter.StopShowingText()를 호출하면 일시중지할 수 있고, typewriter.StartShowingText().
를 호출하면 시작/재개할 수 있습니다
전체 텍스트 건너뛰기 타이프라이터 전체를 건너뛰려면 typewriter.SkipTypewriter()
메서드를 호출하세요.
동작을 제어하기 위한 몇 가지 옵션도 찾을 수 있습니다:건너뛰기 시 외형 숨기기: 건너뛰기 시 외형 효과가 재생되지 않게 하려면 true로 설정하세요(즉, 텍스트가 즉시 표시됩니다).건너뛰기 시 이벤트 트리거 타이핑 시 이벤트 트리거
: 타이프라이터가 건너뛰기 될 때 남은 모든 이벤트를 트리거하려면 true로 설정하세요(게임 로직과 함께 실행 중인 경우 주의하세요. 모든 것이 한꺼번에 실행됩니다). 이벤트에 대한 자세한 내용은 여기에서 읽어보세요:
텍스트의 특정 부분 건너뛰기
이 기능은 3.0에서 테스트 중이며 다음 버전에서 곧 복원될 예정입니다! 이해해 주셔서 감사합니다!
텍스트 숨기기 typewriter.StartDisappearingText()를 호출하여 스크립트로 글자를 동적으로 숨길 수 있습니다typewriter.StartDisappearingText() 를 호출하고, 언제든지 다음을 호출하여 중지할 수 있습니다.
typewriter.StopDisappearingText() 자체 타이밍 대기(wait)를 만들 수 있습니다(C#로 하는 방법은 여기
를 읽어보세요) 또는 내장된 것을 사용할 수 있습니다.
옵션
타이프라이터는 동일한 설정을 공유할 수 있고 또한 개별 설정을 가질 수 있으므로 검사기에서 해당 필드 위에 마우스 커서를 올려 각 필드의 툴팁을 확인하세요.
다음은 가장 중요하고 일반적인 항목들의 빠른 개요입니다:
콜백(유니티 이벤트)

이벤트
OnTextShowed텍스트 전체가 표시된 후 호출되는 이벤트(“타이프라이터 사용”을 true로 설정한 경우 모든 글자가 표시될 때까지 대기합니다)
OnTextDisappeared
스크립트가 마지막 글자를 숨기기 시작하자마자 호출됩니다
아래의 항목들은 “타이프라이터 사용”가 true:
로 설정된 경우에만 작동합니다
OnTypewriterStart 타이프라이터가 첫 글자 표시를 시작하기 바로 전에 호출됩니다. 타이프라이터가 꺼져 있으면 작동하지 않습니다. 이 경우에는 “OnTextShowed” 이벤트와 겹치게 됩니다
(이 경우 대신 해당 이벤트를 사용할 수 있습니다)
OnCharacterVisible(Char)
문자가 보이게 될 때마다 호출됩니다
OnMessage(EventMarker) 자체 타이밍 대기(wait)를 만들 수 있습니다(C#로 하는 방법은
타이프라이터가 텍스트에서 메시지/이벤트를 만날 때마다 호출됩니다. 이벤트에 대한 더 자세한 내용은 타이프라이터는 연결된 Text Animator의 시간 척도 애니메이터 설정를 사용하여 시간을 진행합니다 (자세한 내용은