Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 소스코드 줄번호
- 오브젝트 풀링
- Mathf.Clamp
- 코드블럭 테마
- LookRotation
- 깊이 우선 탐색
- Quaternion.Euler
- 너비 우선 탐색
- unity
- 유니티 Vector3
- 유니티 머신러닝
- 유니티 ResourceManager
- 이진트리
- 유니티 InputManager
- git-lfs
- c++
- 알고스팟
- LayerMask
- 유니티 리소스매니저
- InputManager
- ML-Agents
- 유니티 Rotate
- 유니티
- 유니티 시야 가림
- LFS
- c++ 문자열 자르기
- 유니티 Collision
- Raycast
- eulerAngles
- 유니티 오브젝트 풀링
Archives
- Today
- Total
무민은귀여워
[유니티] 싱글톤 패턴 본문
반응형
유니티 싱글톤 패턴 사용 예시
- Manager 를 싱글톤 패턴을 사용하여 만든다
- 유니티는 컴포넌트 단위로 구성되므로, Manager 또한 컴포넌트를 (Componenet - Behavior - MonoBehaviour) 상속받은 MonoBehaviour 로 만든다
- 없으면 안되는 항목이므로 네이밍컨벤션으로 @를 붙여주고, DontDestoryOnLoad() 를 사용한다
Manager 코드
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Managers : MonoBehaviour
{
static Managers s_instance; // 유일성이 보장된다
public static Managers Instance { get { Init(); return s_instance; } } // 유일한 매니저를 갖고온다
// Start is called before the first frame update
void Start()
{
Init();
}
// Update is called once per frame
void Update()
{
}
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>();
}
}
}
Manager 사용 코드
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Player : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
Managers mg = Managers.Instance;
}
// Update is called once per frame
void Update()
{
}
}
반응형
'IT > Unity' 카테고리의 다른 글
[유니티] 회전 rotation (0) | 2022.05.16 |
---|---|
[유니티] transform, Vector3 (0) | 2022.05.16 |
유니티 git 연동 lfs 사용하기 (1) | 2021.05.18 |
memo) 유니티 레이캐스트 RayCast, BoxCast, SphereCast 스크랩 (0) | 2020.01.15 |
유니티 코루틴의 문법 (0) | 2020.01.03 |
Comments