MonoBehaviour 클래스는 에디터에서 스크립트를 게임 오브젝트에 연결할 수 있는 프레임워크를 제공합니다. 또한 Start 및 Update 같은 유용한 이벤트에 후크를 제공합니다.
스크립트 생성에 설명된 대로 에디터에서 새 MonoBehaviour 스크립트를 생성할 수 있습니다.
MonoBehaviour 클래스의 모든 구성원에 대한 완전한 레퍼런스와 해당 기술 세부 사항은 MonoBehaviour 스크립트 레퍼런스를 참조하십시오.
Unity에서 스크립트 에셋을 더블 클릭하여 텍스트 에디터에서 엽니다. 기본적으로 Unity는 Visual Studio를 사용하지만 Unity 환경 설정의 External Tools 패널에서 원하는 에디터를 선택할 수 있습니다(메뉴: Unity > Preferences).
MonoBehaviour 스크립트를 생성하는 경우 파일의 초기 내용은 다음과 같습니다.
using UnityEngine;
using System.Collections;
public class NewMonoBehaviourScript : MonoBehaviour {
// Start is called once before the first execution of Update after the MonoBehaviour is created
void Start()
{
}
// Update is called once per frame
void Update()
{
}
}
이 스크립트는 MonoBehaviour라는 빌트인 클래스에서 파생된 클래스를 구현하여 Unity의 내부 작동과 연결합니다. 클래스는 게임 오브젝트에 연결할 수 있는 새로운 컴포넌트 유형을 생성하기 위한 일종의 블루프린트라고 생각하면 됩니다. 스크립트 컴포넌트를 게임 오브젝트에 연결할 때마다 블루프린트로 정의된 오브젝트의 새 인스턴스가 생성됩니다. 클래스의 이름은 파일이 생성될 때 입력한 이름에서 가져옵니다. 클래스 이름과 파일 이름을 동기화하는 것이 가장 좋습니다. 명명 고려 사항을 참조하십시오.
하지만 주목할 점은 클래스 내에 정의된 두 개의 함수입니다. Update 함수는 게임 오브젝트의 프레임 업데이트를 처리할 코드를 넣는 위치입니다. 여기에는 움직임, 동작 트리거, 사용자 입력에 대한 응답이 포함될 수 있으며, 기본적으로 게임플레이 중에 시간이 지남에 따라 처리해야 하는 모든 작업이 포함됩니다. Update 함수가 작동하도록 만들려면 게임 동작이 발생하기 전에 변수를 설정하고 환경 설정을 읽고 다른 게임 오브젝트와 연결할 수 있어야 합니다. Start 함수는 게임플레이가 시작되기 전에(Update 함수가 처음 호출되기 전에) Unity에서 호출되며, 초기화를 수행할 수 있는 이상적인 위치입니다.
참고: 숙련된 프로그래머라면 생성자 함수를 사용하여 오브젝트를 초기화하지 않는다는 사실에 놀랄 수 있습니다. 이는 오브젝트 생성이 Unity 에디터에 의해 처리되며 게임플레이가 시작될 때 예상대로 진행되지 않기 때문입니다. MonoBehaviour 생성자를 정의하려고 하면 Unity의 정상적인 작동을 방해하고 프로젝트에 심각한 문제를 일으킬 수 있습니다.
스크립트는 컴포넌트에 대한 블루프린트만 정의하므로 스크립트의 인스턴스가 게임 오브젝트에 연결될 때까지 코드가 활성화되지 않습니다. 스크립트 에셋을 계층 구조 패널의 게임 오브젝트 또는 현재 선택한 게임 오브젝트의 인스펙터로 드래그하여 스크립트를 연결할 수 있습니다. 컴포넌트 메뉴에는 자신이 만든 스크립트를 비롯하여 프로젝트에서 사용할 수 있는 모든 스크립트가 포함된 스크립트 하위 메뉴도 있습니다. 스크립트 인스턴스는 인스펙터의 다른 컴포넌트와 매우 유사합니다.
연결된 후 플레이 버튼을 눌러 게임을 실행하면 스크립트가 작동합니다. Start 함수에 다음 코드를 추가하여 확인할 수 있습니다.
// Use this for initialization
void Start ()
{
Debug.Log("Hello world!");
}
Debug.Log는 Unity 콘솔 출력에 메시지를 출력하는 간단한 명령입니다. 지금 플레이 버튼을 누르면 메인 에디터 창 하단과 콘솔 창(메뉴: Window > General > Console)에 메시지가 표시됩니다.
MonoBehaviour 클래스를 사용하면 코루틴을 시작, 중지, 관리할 수 있습니다.
코루틴에 대한 자세한 내용은 코루틴과 StartCoroutine 메서드 스크립트 레퍼런스를 참조하십시오.
MonoBehaviour 클래스는 프로젝트에서 현재 진행 중인 작업에 따라 코드를 실행할 수 있는 대규모의 이벤트 함수 컬렉션에 대한 액세스를 제공합니다. 다음은 몇 가지 일반적인 예시입니다. 전체 목록은 MonoBehaviour 스크립트 레퍼런스 페이지의 메시지 섹션을 참조하십시오.