공부

Unity MonoBehaviour

상연 2023. 11. 25. 00:42

목차

    MonoBehaviour

    기본적으로 모든 Unity 스크립트가 파생되는 기본 클래스

    즉, 이를 상속하지 않으면 Unity의 핵심 기능들을 사용하지 못한다고 생각하면 된다.

    그리고 스크립트를 오브젝트의 컴포넌트로 사용할 수 있게 해주는 아주아주 중요한 녀석입니다.

     

    Monobehaviour 상속 제거?

    이렇게 생성한 스크립트에서 Monobeviour를 제거 해보겠습니다.

    그리고 해당 스크립트를 오브젝트의 컴포넌트로 추가하려 하자... 안됩니다.

     

    Monobehaviour가 가진 것

    https://docs.unity3d.com/kr/2021.1/ScriptReference/MonoBehaviour.html

     

    MonoBehaviour - Unity 스크립팅 API

    MonoBehaviour is the base class from which every Unity script derives.

    docs.unity3d.com

    해당 문서를 보면 Monobehaviour는 많은 일을 할 수 있다는 것을 알 수 있습니다.

    Start / Update / FixedUpdate 등 Unity의 LifeCycle을 구성하기도 하고요.

    각종 이벤트메세지를 관리하기도합니다. Object가 충돌했는지나 존재하는지 등등 다양하네요.

    그리고 더 타고 타고 올라가다보면 Monobehaviour의 부모 클래스가 더 있다는 것을 알게 됩니다.

    Object Class

    Unity가 참조할 수 있는 모든 객체의 기본이 되는 클래스입니다.

    https://docs.unity3d.com/kr/2021.1/ScriptReference/Object.html

     

    Object - Unity 스크립팅 API

    Base class for all objects Unity can reference.

    docs.unity3d.com

    Object에 대한 아주 기본적인 기능이 구현되어 있는것을 볼 수 있습니다.

    Instance ID를 가져오거나, Destroy, Instantiate 등등 이 있네요

     

    Component Class

    그리고 위의 Object 클래스를 상속하는 Component 입니다.

    실제로 Script를 GameObject와 연결시켜주는 역할을 하는 것 같네요.

    클래스 이름에 맞게 Component를 가져오거나, 이를 통해 오브젝트를 참조하는 함수들이 있습니다.

    https://docs.unity3d.com/kr/2021.1/ScriptReference/Component.html

     

    Component - Unity 스크립팅 API

    Base class for everything attached to GameObjects.

    docs.unity3d.com

    여기서 갑자기 궁금한 점이 생겼는데요, Component Class를 상속하면 Object에 Component 추가가 될까요?

    불가능합니다. 

     

    Behaviour Class

    이번에는 Component를 상속하는 Behaviour Class 입니다.

    설명을 보면 활성화하거나 비활성화 할 수 있는 구성 요소라고 되어있습니다.

    https://docs.unity3d.com/kr/2021.1/ScriptReference/Behaviour.html

     

    Behaviour - Unity 스크립팅 API

    Behaviours are Components that can be enabled or disabled.

    docs.unity3d.com

     

    그리고 마지막으로 이 Behaviour를 상속한 것이 Monobehaviour class입니다.

    베이스 클래스부터 차근차근 링크를 타고 보시면 추가되는 기능들을 볼 수 있습니다.