


(없음)
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());
}
}
DOVirtual.DelayedCall(delay, Callback)
float delay : 지연 시간(초), 여기서는 1이므로 1초 후에 작업을 실행
TweenCallback callback : 지연 시간 후에 호출될 콜백 메소드
SetId : DOTween의 메소드로, 특정 트윈 애니메이션에 식별자를 설정. 이 식별자는 나중에 트윈을 제어하거나 중지할 때 사용한다.
GetInstanceID : Unity의 Object 클래스의 메소드로, 특정 게임 오브젝트의 고유한 인스턴스 ID를 반환한다. 이 ID는 각 게임 오브젝트마다 유일하다. SetId 메소드에서 식별자로 사용되며, 이를 통해 특정 트윈을 구분할 수 있다.
Make sure to check out https://efektydzwiekowe.com/ for a wide range of sound effects to elevate your projects!