[Unity] 싱글톤 패턴 매니저
2020. 11. 1. 22:50ㆍ[Unity] 게임 개발
반응형
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Managers : MonoBehaviour
{
static Managers s_instance; //유일성이 보장된다.
static Managers Instance { get { Init(); return s_instance; } }
void Start()
{
Init();
}
void Update()
{
_input.OnUpdate();
}
static void Init()
{
if (s_instance == null)
{
GameObject go = GameObject.Find("@Managers");
if (go == null)
{
go = new GameObject { name = "@Managers" };
go.AddComponent<Managers>();
}
DontDestroyOnLoad(go);
s_instance = go.GetComponent<Managers>();
}
}
}
싱글톤 패턴으로 각종 매니저들을 생성해주기 전 매니저들의 매니저 생성.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Managers : MonoBehaviour
{
static Managers s_instance; //유일성이 보장된다.
static Managers Instance { get { Init(); return s_instance; } }
InputManager _input = new InputManager();
public static InputManager Input { get { return Instance._input; } }
ResouceManager _resource = new ResouceManager();
public static ResouceManager Resource { get { return Instance._resource; } }
void Start()
{
Init();
}
void Update()
{
_input.OnUpdate();
}
static void Init()
{
if (s_instance == null)
{
GameObject go = GameObject.Find("@Managers");
if (go == null)
{
go = new GameObject { name = "@Managers" };
go.AddComponent<Managers>();
}
DontDestroyOnLoad(go);
s_instance = go.GetComponent<Managers>();
}
}
}
그 후 사운드매니저, 게임매니저 리소스 매니저 등등 사용하고 싶은 매니저들을 관리(호출해야할때만 호출)
효과: Update문에 하드코드하는 것보다 필요할때 각각의매니저를 호출 하는것으로 관리하여 효율성을 올렸다면
이번에는 각각의 매니저 또한 필요할때 호출하여 효율성을 더 높힘.
반응형
'[Unity] 게임 개발' 카테고리의 다른 글
[Unity] 완성형 게임 백엔드 뒤끝을 이용한 UserDB작업 (0) | 2021.02.18 |
---|---|
[Unity] UI관리 기법 (0) | 2020.11.02 |
[Unity] Scene 전환시 Loading Scene 만들기 (0) | 2020.10.09 |
[Unity] iTween Move 함수 사용 (0) | 2020.08.13 |
[Unity]Camera View 조절 (0) | 2020.08.10 |