Unity

DoTween : DoText,DoColor

psb08 2024. 12. 10. 01:37
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와 비슷한 느낌으로 진행된다고 보시면 됩니다.

 

https://youtu.be/60QXUwIqQBY

최종 영상입니다.

 

'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