게임 매니저
public class Managers : MonoBehaviour
{
// 유일한 Managers 인스턴스를 저장하는 정적 변수
static Managers s_instance;
// 외부에서 Managers.Instance로 접근 가능 (싱글톤)
public static Managers Instance
{
get
{
Init();
return s_instance;
}
}
// 유니티 생명 주기 함수, 시작 시 Init() 호출
void Start()
{
Init();
}
// 싱글톤 초기화 및 씬 전환 시 유지 처리
static void Init()
{
if (s_instance == null)
{
// @Managers 오브젝트를 찾거나 새로 생성
GameObject go = GameObject.Find("@Managers");
if (go == null)
{
go = new GameObject { name = "@Managers" };
go.AddComponent<Managers>();
}
// 씬 전환 시 파괴되지 않도록 설정
DontDestroyOnLoad(go);
// 인스턴스를 해당 컴포넌트로 설정
s_instance = go.GetComponent<Managers>();
}
}
}
플레이어
public class Player : MonoBehaviour
{
void Start()
{
Managers mg = Managers.Instance;
}
}