앞 강의에서 클래스의 상속에 대해 설명드렸으니, 이제 ‘유니티에서 스크립트가 기본적으로 ‘MonoBehaviour’ 클래스를 상속한다’는 말의 뜻을 이해하실 수 있을 것입니다.
유니티에서 C# 스크립트 파일을 만들면, 클래스 이름 옆에 콜론과 함께 ‘MonoBehaviour’라고 작성되어 있는 것을 볼 수 있습니다.
이는 우리가 만든 ‘MyFirstScript’라는 스크립트가 ‘MonoBehaviour’라는 유니티가 제공하는 부모 클래스를 상속받았다는 의미입니다.
유니티에서 스크립트 파일을 만들면, ‘MonoBehaviour’라는 유니티가 제공하는 부모 클래스의 자손으로 정의되어 클래스가 생성됩니다. 이것의 의미는, 부모 클래스가 가진 함수나 변수를 자손 클래스에서 가져다 쓸 수 있다는 것입니다.
따라서, 우리는 게임을 만들기 위해 필요한 다양한 함수나 변수들을 직접 만들지 않더라도 유니티가 미리 만들어 놓은 것들을 쉽게 사용할 수 있습니다.
예를 들어, 유니티에서 스크립트 파일을 만들면, 자동으로 ‘Start’와 ‘Update’라는 두 개의 함수가 생성됩니다.
이 함수들은 ‘MonoBehaviour’라는 유니티가 만든 부모 클래스로부터 상속받은 것입니다.
따라서 ‘MonoBehaviour’ 라는 이름의 클래스가 ‘Start’와 ‘Update’ 함수를 어떤 용도로 만들었는지 알게 되면, 이 함수들을 그 용도에 맞게 사용할 수 있습니다.
‘Start’ 함수는 씬을 처음 로드하거나, 이 스크립트가 연결된 게임 오브젝트가 씬에 생성되는 순간 자동으로 호출되는 함수입니다. 즉, 게임이 실행될 때 이 함수 안에 있는 명령어들이 자동으로 실행됩니다.
‘Update’ 함수는 게임이 실행되는 동안 매 프레임마다 이 함수 안에 있는 명령어들이 실행됩니다. 예를 들어, 게임이 초당 30프레임으로 동작한다면, ‘Update’ 함수 안의 명령어들은 초당 30번 반복적으로 실행됩니다.
이렇게 ‘MonoBehaviour’ 부모 클래스에서 미리 정의된 ‘Start’와 ‘Update’와 같은 함수들을 활용하면, 우리가 원하는 기능을 직접 만들지 않아도 용도에 맞게 사용할 수 있습니다.
따라서, ‘MonoBehaviour’ 부모 클래스가 제공하는 함수들에 어떤 것이 있고, 그 기능이 무엇인지를 잘 아는 것이 중요합니다. 그렇게 하면, 우리는 게임 개발에 필요한 기능들을 일일이 직접 만들지 않더라도 원하는 게임 기능들을 손쉽게 구현할 수 있습니다.