** 컨포넌트를 이용해서 기능을 세분화하여 작업함
컨포넌트는 자신만의 기능을 세분화여 들고 있지만,
범용적으로 항상 사용하는 기능도 컨포넌트로 구현할 것인가?
그렇다면 그 내용들을 어떻게 공유하고 구현할 것이며 호출할 것인가?
=> 그에 대한 해답 중 하나가 매니저이다.
** 매니저(Managers)
: 만능형으로, 모든 기능을 종합적으로 관리하는 역할
이 기능의 핵심은 우리가 작업하는 코드 내에서 언제 언디서든 사용 가능하다는 점
ㄴ 여러 개의 컨포넌트들이 따로 떨어져 있을 때, 교류하여 작업하는 방식
▼ 매니저
using UnityEngine;
public class Managers : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
}
public void PlaySound()
{
// TODO
Debug.Log("PlaySound");
}
public void ShowUI()
{
// TODO
Debug.Log("ShowUI");
}
}
▼ 매니저를 사용하는 컨포넌트
using UnityEngine;
public class Player : MonoBehaviour
{
// 1)
//public GameObject _managers;
// 2)
//public Managers _managers;
// 4)
Managers _managers;
// Start is called before the first frame update
void Start()
{
// 1)
//Managers managers = _managers.GetComponent<Managers>();
//managers.PlaySound();
// 2)
//_managers.PlaySound();
// 3)
//GameObject go = GameObject.Find("@Managers");
//Managers _managers = go.GetComponent<Managers>();
//_managers.PlaySound();
// 4)
GameObject go = GameObject.Find("@Managers");
_managers = go.GetComponent<Managers>();
}
// Update is called once per frame
void Update()
{
_managers.PlaySound();
}
}
** 참고 블로그
https://velog.io/@ddongg00/UnityGame-Manager%EB%A7%8C%EB%93%A4%EA%B8%B0
https://velog.io/@scarleter99/Unity-1-1.-%EC%9C%A0%EB%8B%88%ED%8B%B0-%EC%97%94%EC%A7%84-Managers
'게임프로그래밍' 카테고리의 다른 글
[C] 텍스트 슈팅 게임 (0) | 2024.12.17 |
---|---|
[MMO Lab 1기] 싱글톤(Singleton) (0) | 2024.02.07 |
[MMO Lab 1기] 유니티 2022.03 매뉴얼 (0) | 2024.01.24 |
[MMO Lab 1기] GameObject vs Component (0) | 2024.01.23 |
[MMO Lab 1기] Component 패턴 (0) | 2024.01.17 |