C# 에만 익숙해있다가 유니티를 접하게 되면
class 를 인스턴스화 하는데 new 를 사용하지 않는다는 사실에 당황하게 된다.
유니티의 경우 생성한 모든 GameObject 들은 Component 기반이다.
그래서 필요한 Component 를 해당 GameObject에 추가해서 사용하게 된다.
스크립트도 예외는 아니어서 Component 로 추가하고 제어한다.
그리고 이러한 구조가 가능한 이유가 MonoBehaviour class 를 상속받았기 때문이다.
MonoBehaviour 를 상속받은 class 는 유니티가 동작하는 방식에 따라 처리되기 때문에 외부에서 new 로 할당하게 되면 정상동작하지 않으니, 내부에서 어떤 순서로 유니티가 동작하는지 완벽하게 파악한 초절정 고수가 아니라면 사용하지 말자. 일반적으로 권장되지 않는 방법이다.
유니티와 무관한 간단한 C# 예제 코드를 짤 때, GameObject 를 생성해서 C# 스크립트를 컴포넌트로 추가하고 해당 스크립트를 component로 얻어와서 class 기능을 확인하는 것이 귀찮을 때가 있다.
이럴 때는 생성된 스크립트에서 MonoBehaviour 를 지워주면 된다.
'프로그래밍 > Unity' 카테고리의 다른 글
StartCoroutine (1) | 2024.10.12 |
---|---|
편집 도구는 어떤걸 선택해야 하나? (Visual Studio, Visual Studio Code) (2) | 2024.10.10 |
유니티는 어떻게 Coroutine 을 처리하는가 (0) | 2024.10.04 |
ScriptableObject (0) | 2024.10.02 |
자체 UI 크기 설정 (0) | 2024.09.16 |