728x90
반응형
이번에 DoTween에서 DoText와 DoColor를 사용해서 타자가 쳐지는 느낌을 만들고 점점 색을 변화시키도록 하겠습니다.
대충 빈 오브젝트와 스크립트 하나를 만들어서 스크립트를 오브젝트에 넣어줍니다.
그리고 텍스트를 띠울 그냥 Text를 하나 추가합니다.

저는 대충 이렇게 세팅 하였습니다.
DoTweenManager라는 빈 오브젝트에

스크립트를 넣었습니다.
DoTextScripts.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using DG.Tweening;
using UnityEngine.UI;
public class DoTextScripts : MonoBehaviour
{
public Text text;
public string[] tutorial;
public string[] dialogue;
public int talkNum;
private void Start()
{
StartTalk(tutorial);
}
IEnumerator Typing(string talk)
{
text.text = null;
text.DOText(talk, 1f);
text.DOColor(Color.red, 23f);
yield return new WaitForSeconds(3f);
NextTalk();
}
public void StartTalk(string[] talks)
{
dialogue = talks;
StartCoroutine(Typing(dialogue[talkNum]));
}
public void NextTalk()
{
talkNum++;
if (talkNum == dialogue.Length)
{
EndTalk();
return;
}
StartCoroutine(Typing(dialogue[talkNum]));
}
public void EndTalk()
{
talkNum = 0;
Debug.Log("끝");
}
}
--변수--
Text text : UI에 표시될 텍스트 컴포넌트.
string[] tutorial, string[] dialogue : 대화 내용 배열.
int talkNum : 현재 대화의 인덱스를 저장.
--메서드--
Start : StartTalk 메서드를 호출합니다. -> 대화를 시작합니다.
Typing : 텍스트를 먼저 비우고, DoText를 사용하여 대화 내용을 애니메이션으로 타자 치는 느낌을 줍니다.
DoColor를 사용하여 23초 동안 점점 빨간색으로 변합니다.
그리고 3초를 기다린 후 다음 대화로 넘깁니다.
StartTalk : 대화를 시작하는 메서드입니다.
NextTalk : 다음 대화로 넘기고 talkNum을 늘려줍니다.
대화가 끝나면 EndTalk 메서드를 실행합니다.
EndTalk : talkNum을 0으로 초기화 하고 끝을 냅니다.
저번에 쓴 Dialogue와 비슷한 느낌으로 진행된다고 보시면 됩니다.
최종 영상입니다.
'Unity' 카테고리의 다른 글
지금까지 한 일 1 (0) | 2025.02.06 |
---|---|
DoTween : DoMove (0) | 2024.12.11 |
Unity SpringJoint2D (0) | 2024.12.09 |
Unity HingeJoint2D (0) | 2024.12.08 |
Dialogue System 3 - DialogueGameManager 메서드 설명 (2) | 2024.11.23 |