답변
MonoBehaviour를 상속받지 않은 매니저들은 new로 인스턴스를 생성했습니다. MonoBehaviour를 사용하지 않는 일반 클래스는 단독으로 인스턴스화하여 사용할 수 있습니다.
반대로 MonoBehaviour를 사용하는 클래스들은 Unity의 GameObject에 연결되어 있어야 합니다. Unity에서는 MonoBehaviour는 기본적으로 스크립트가 Unity 엔진과 상호작용하도록 하는 베이스 클래스입니다.
따라서, MonoBehaviour를 상속하는 스크립트는 Hierarchy 창에 표시되는 게임 오브젝트에 부착되어야 합니다.
이유
Unity Lifecycle 관리 : MonoBehaviour는 Unity의 주요 이벤트(Lifecycle Methods)인 Start, Update 등을 제공합니다. 이를 위해서는 해당 스크립트가 어떤 게임 오브젝트의 구성 요소로 존재해야만 합니다.
Scene과의 연결 : Hierarchy 창에 나타나는 오브젝트는 Unity Scene의 일부이며, 이는 게임 실행 중 메모리에 로드됩니다. MonoBehaviour 클래스가 GameObject에 부착되어 있지 않으면, 실행 중 동작하지 않습니다.
직접 관리 불가 : MonoBehaviour를 상속하는 클래스는 new 키워드로 인스턴스화할 수 없으며, 반드시 AddComponent() 또는 Unity 에디터를 통해 GameObject에 연결해야 합니다.
답변
이유
중앙 집중식 관리
모듈화 및 코드 분리
싱글톤(Singleton) 패턴과의 조합
유지보수성
게임 상태 제어
재사용성
예상되는 단점