반응형
과정
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. 실행 영상
반응형
'유니티 공부 > Unity' 카테고리의 다른 글
Unity - ScrollView 원하는 만큼 Scroll 내리는 법( anchoredPosition) (0) | 2023.06.16 |
---|---|
Unity - 'TMPro.TMP_Text'에서 'string'(으)로 변환할 수 없습니다 오류 (0) | 2023.06.16 |
Unity - [SerializeField],직렬화, [System.Serializable] (0) | 2023.06.14 |
Unity - RectTransform, anchoredPosition (0) | 2023.06.13 |
Unity - LayoutUtility.GetPreferredHeight (0) | 2023.06.13 |
댓글