MonoBehaviour 클래스는 기본적으로 모든 Unity 스크립트가 파생되는 기본 클래스입니다. Unity의 프로젝트 창에서 C# 스크립트를 생성하면 MonoBehaviour에서 자동으로 상속되며, 템플릿 스크립트를 제공합니다. 이에 대한 자세한 내용은 스크립트 생성 및 사용을 참조하십시오.
MonoBehaviour 클래스는 에디터에서 게임 오브젝트에 스크립트를 연결할 수 있는 프레임워크를 제공할 뿐만 아니라, 시작 및 업데이트 등과 같은 유용한 이벤트에 대한 연결을 제공합니다.
MonoBehaviour 클래스의 모든 구성원에 대한 완전한 레퍼런스와 해당 기술 세부 사항은 MonoBehaviour 스크립트 레퍼런스를 참조하십시오.
프로젝트 창에서 스크립트를 선택하면, 인스펙터는 스크립트가 속한 어셈블리의 이름과 스크립트 콘텐츠의 미리보기를 포함하여 해당 스크립트 에셋에 대한 일부 기본 정보를 표시합니다.
참고: 인스펙터에 스크립트 콘텐츠가 표시되지만 인스펙터 창에서 스크립트를 편집할 수는 없습니다.
스크립트 인스펙터에는 Open 및 Execution Order라는 두 개의 버튼도 표시됩니다.
Open 버튼은 현재 설정된 외부 스크립트 에디터(IDE(통합 개발 환경)라고도 함)에서 스크립트를 엽니다. Open 버튼은 프로젝트 창에서 스크립트를 더블 클릭하는 것과 동일한 기능을 수행합니다. Unity에서 스크립트를 열기 위해 사용할 외부 에디터는 Preferences 창의 External Tools 섹션에서 설정할 수 있습니다.
Execution Order 버튼을 누르면 Project Settings 창의 Script Execution Order 섹션이 열리고, 여기서 Unity가 스크립트를 실행하는 순서를 변경할 수 있습니다.
MonoBehaviour 스크립트에서 에디터에 할당할 수 있는 공용 Object 필드를 정의하는 경우, 이러한 필드에 대한 기본 레퍼런스를 설정할 수 있습니다. 기본 레퍼런스 필드는 프로젝트 창에서 스크립트 에셋을 선택하면 인스펙터에서 볼 수 있습니다.
위의 예시에는 기본 레퍼런스가 할당되지 않은 3개의 공용 AudioClip 필드가 있습니다. 각 AudioClip 기본 레퍼런스 필드에 오디오 클립을 할당할 수 있습니다.
기본 레퍼런스를 할당하면 MonoBehaviour를 게임 오브젝트에 컴포넌트로 추가하거나 게임 오브젝트에서 MonoBehaviour의 기존 인스턴스를 기본값으로 재설정한 경우에 적용됩니다.
참고: 게임 오브젝트의 MonoBehaviour 인스턴스에 있는 레퍼런스와 기본 레퍼런스 사이에는 지속적인 링크가 없습니다. 따라서 기본 레퍼런스를 변경해도 기존 게임 오브젝트에서 자동으로 업데이트되지 않습니다.
UnityEngine.Object
에서 상속되지 않는 다른 유형의 인스펙터 편집 가능 필드(예: 공용 문자열 또는 int 필드)는 인스펙터에 기본 필드가 없습니다. 대신 스크립트 자체에서 기본값을 가져옵니다.
MonoBehaviour 클래스를 사용하면 코루틴을 시작, 중지 및 관리할 수 있습니다. 이는 특정 시간 동안 기다리거나 특정 작업이 완료될 때까지 기다리면서 다른 코드가 계속 실행되도록 해주는 비동기 코드 작성 방식입니다.
코루틴에 대한 자세한 내용은 코루틴 매뉴얼 페이지와 StartCoroutine 메서드 스크립트 레퍼런스를 참조하십시오.
MonoBehaviour 클래스는 대규모 이벤트 메시지 컬렉션에 대한 액세스를 제공하며, 이를 통해 현재 프로젝트에서 발생하는 상황에 따라 코드를 실행할 수 있습니다. 다음은 일반적인 몇 가지 예입니다. 전체 리스트는 MonoBehaviour 스크립트 레퍼런스 페이지의 Messages 섹션을 참조하십시오.
Start
- 게임 오브젝트가 존재하기 시작할 때 호출됩니다(씬이 로드될 때 또는 게임 오브젝트가 인스턴스화될 때 호출).
Update
- 프레임마다 호출됩니다.
FixedUpdate
- 물리 타임스텝마다 호출됩니다.
OnBecameVisible
및 OnBecameInvisible
- 게임 오브젝트의 렌더러가 카메라의 뷰에 들어오거나 나갈 때 호출됩니다.
OnCollisionEnter
및 OnTriggerEnter
- 물리 충돌 또는 트리거가 발생할 때 호출됩니다.
OnDestroy
- 게임 오브젝트가 파괴될 때 호출됩니다.