유니티
메소드 실행 늦추기
Nhahan
2022. 6. 12. 02:01
어떤 경우에 씬을 로드한다고 했을 때, 바로 화면이 전환되어 버리면 유저는 위화감과 어색함을 느낄 수 밖에 없다.
예를 들어 게임오버가 되어 화면이 전환되어야하는데 아무런 피드백도 없이 화면이 바뀐다면 유저는 머리 속에 물음표를 띄울 것이다.
그렇다고 SceneManager.LoadScene() 메소드를 조정하는 것도 탐탁지 않은 일이다.
그럴 때 쓰는게 Invoke()이다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class FinishLine : MonoBehaviour
{
[SerializeField] float loadDelay = 1f;
void OnTriggerEnter2D(Collider2D other) {
if(other.tag == "Player") {
Invoke("ReloadScene", loadDelay);
Debug.Log("Restart Game in 1second.");
}
}
void ReloadScene() {
SceneManager.LoadScene(0);
}
}
사용법은 Invoke("함수명", 딜레이)로 상당히 쉽다.
이후 원하는 로직을 넣어주면 된다.
728x90