그리고 생성한 GamaManager 클래스의 변수 및 메서드는 어느 클래스에서도 접근할 수 있다.
Awake() 메서드를 통해 Singleton에 맞게 GameObject가 중복 생성되지 않도록 처리되며,
Manager로 사용하기 위해, Scene 이동 시 삭제되지 않도록 처리되었다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class GameManager : MonoBehaviour
{
// Singleton Instance 선언
private static GameManager instance = null;
// Singleton Instance에 접근하기 위한 프로퍼티
public static GameManager Instance
{
get
{
return instance;
}
}
// GameManager 에서 사용 하는 데이터
public bool isPause = false;
public int score = 0;
void Awake()
{
// Scene에 이미 인스턴스가 존재 하는지 확인 후 처리
if(instance)
{
Destroy(this.gameObject);
return;
}
// instance를 유일 오브젝트로 만든다
instance = this;
// Scene 이동 시 삭제 되지 않도록 처리
DontDestroyOnLoad(this.gameObject);
}
}
public class GameContorl
{
public void IsPause()
{
GameManager.Instance.isPause = true;
}
}
댓글 없음:
댓글 쓰기