[Unity] Zerry Library (6) : Countdown Animation with Sound Effect

suhan0304·2024년 7월 6일

유니티 - Zerry Library

목록 보기
6/11
post-thumbnail

Assets

  • DOTween
  • UniTask
  • Odin

Sample


Hierachy


Textures

(없음)


Scipts

using UnityEngine;
using UnityEngine.UI;
using DG.Tweening;
using TMPro;
using Sirenix.OdinInspector;

public class CountDownAnimation : MonoBehaviour
{
    [SerializeField] TMP_Text countDownText;
    [SerializeField] AudioSource audioSource;
    [SerializeField] AudioClip countAudioClip, startAudioClip;
    [SerializeField] Color numberColor;
    [SerializeField] Color startColor;

    int currentCount;

    [Button("Start Count Down")]
    private void StartCountDown() {
        DOTween.Kill("CountDown" + GetInstanceID());
        currentCount = 3;
        UpdateCountDown();
    }

    private void UpdateCountDown() {
        if (currentCount == -1) {
            countDownText.DOFade(0, 5f);
            return;
        }
        else if (currentCount == 0) {
            countDownText.text = "Start";
            countDownText.color = startColor;
            countDownText.DOFade(1, 0);
            audioSource.PlayOneShot(startAudioClip);
        }
        else {
            countDownText.text = currentCount.ToString();
            countDownText.color = numberColor;
            countDownText.DOFade(0,1).From(1).SetEase(Ease.InOutQuad);
            countDownText.transform.DOScale(1, 1).From(1.2f).SetEase(Ease.InOutQuad);
            audioSource.PlayOneShot(countAudioClip);
        }
        currentCount--;
        DOVirtual.DelayedCall(1, UpdateCountDown).SetId("Countdown" + GetInstanceID());
    }   


}

References

  • DOVirtual.DelayedCall(delay, Callback)
    float delay : 지연 시간(초), 여기서는 1이므로 1초 후에 작업을 실행
    TweenCallback callback : 지연 시간 후에 호출될 콜백 메소드

  • SetId : DOTween의 메소드로, 특정 트윈 애니메이션에 식별자를 설정. 이 식별자는 나중에 트윈을 제어하거나 중지할 때 사용한다.

  • GetInstanceID : Unity의 Object 클래스의 메소드로, 특정 게임 오브젝트의 고유한 인스턴스 ID를 반환한다. 이 ID는 각 게임 오브젝트마다 유일하다. SetId 메소드에서 식별자로 사용되며, 이를 통해 특정 트윈을 구분할 수 있다.

profile
Be Honest, Be Harder, Be Stronger

1개의 댓글

comment-user-thumbnail
2024년 10월 26일

Make sure to check out https://efektydzwiekowe.com/ for a wide range of sound effects to elevate your projects!

답글 달기