어떤 경우에 씬을 로드한다고 했을 때, 바로 화면이 전환되어 버리면 유저는 위화감과 어색함을 느낄 수 밖에 없다.
예를 들어 게임오버가 되어 화면이 전환되어야하는데 아무런 피드백도 없이 화면이 바뀐다면 유저는 머리 속에 물음표를 띄울 것이다.
그렇다고 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("함수명", 딜레이)로 상당히 쉽다.
이후 원하는 로직을 넣어주면 된다.
'유니티' 카테고리의 다른 글
Sprite Editor로 Sprite Slice 하기 (0) | 2022.06.13 |
---|---|
파티클 이펙트 (0) | 2022.06.12 |
씬Scene 관리하기 (맵 스테이지 바꾸기, 재시작, 게임오버) (0) | 2022.06.12 |
회전 컨트롤하기 (0) | 2022.06.11 |
Mac에서 에셋 zip파일 잘 import하기 (0) | 2022.06.09 |
댓글