본문 바로가기
유니티 공부/Unity

Unity - 텍스트에 타이핑 효과(typingEffect) 적용하는 방법

by 코딩하는 돼징 2023. 6. 16.
반응형

과정

1. 코루틴을 이용하기

IEnumerator TypeTextEffect(string text)

코루틴 알아보러 가기

 

Unity - Coroutine(코루틴)

Coroutine(코루틴) 1. 사용 이유 Update함수는 게임 오브젝트가 활성화된 상태에서 매 프레임 호출되어 수행한다. 그런데 만약 3초동안 지연을 시키고 싶으면 어떻게 해야할까? Update함수 안에서 일정

code-piggy.tistory.com


2. Text 비우기

아무것도 없는 상태에서 한글자씩 추가하면 타이핑 효과를 적용할 수 있으므로 Text를 비운다.

IEnumerator TypeTextEffect(string text)
{
    Text.text = string.Empty;
}

3. StringBuilder사용해서 하나씩 문자 넣기

StringBuilder stringBuilder = new StringBuilder();

for (int i = 0; i < text.Length; i++)
{
    stringBuilder.Append(text[i]);
    Text.text = stringBuilder.ToString();
    yield return new WaitForSeconds(0.01f);
 }

01 Text.text 설정

stringBuilder에 저장된 문자열을 Text컴포넌트에 텍스트로 설정함에 따라 타이핑 효과가 적용된 텍스트가 실시간으로 출력된다.

Text.text = stringBuilder.ToString();

2) typing 속도 설정

글자가 타이핑 되는 효과를 넣어주기 위해 한 글자가 출력된 후에 일정시간을 멈추게 한다. 

yield return new WaitForSeconds(0.01f);

WaitForSeconds안의 숫자가 작아지면 빨라지고 커지면 느려진다.


StringBuilder 알아보러가기

 

C# - StringBuilder

String String 개체는 변경할 수 없다. System.String 클래스에서 메서드 중 하나를 사용할 때마다 메모리에 새 문자열 개체가 생성되므로, 새 개체에 대한 공간을 새로 할당 되어진다. 그러므로 문자열

code-piggy.tistory.com


4. 최종 코드

IEnumerator TypeTextEffect(string text)
{
    Text.text = string.Empty;

    StringBuilder stringBuilder = new StringBuilder();

    for (int i = 0; i < text.Length; i++)
    {
        stringBuilder.Append(text[i]);
        Text.text = stringBuilder.ToString();
        yield return new WaitForSeconds(0.01f);
    }
}

5. 실행 영상

 

반응형

댓글