앞 강의에서 클래스의 상속에 대해 설명드렸으니, 이제 ‘유니티에서 스크립트가 기본적으로 ‘MonoBehaviour’ 클래스를 상속한다’는 말의 뜻을 이해하실 수 있을 것입니다.
유니티에서 C# 스크립트 파일을 만들면, 클래스 이름 옆에 콜론과 함께 ‘MonoBehaviour’라고 작성되어 있는 것을 볼 수 있습니다.

이는 우리가 만든 ‘MyFirstScript’라는 스크립트가 ‘MonoBehaviour’라는 유니티가 제공하는 부모 클래스를 상속받았다는 의미입니다.
유니티에서 스크립트 파일을 만들면, ‘MonoBehaviour’라는 유니티가 제공하는 부모 클래스의 자손으로 정의되어 클래스가 생성됩니다. 이것의 의미는, 부모 클래스가 가진 함수나 변수를 자손 클래스에서 가져다 쓸 수 있다는 것입니다.
따라서, 우리는 게임을 만들기 위해 필요한 다양한 함수나 변수들을 직접 만들지 않더라도 유니티가 미리 만들어 놓은 것들을 쉽게 사용할 수 있습니다.
예를 들어, 유니티에서 스크립트 파일을 만들면, 자동으로 ‘Start’와 ‘Update’라는 두 개의 함수가 생성됩니다.

이 함수들은 ‘MonoBehaviour’라는 유니티가 만든 부모 클래스로부터 상속받은 것입니다.
따라서 ‘MonoBehaviour’ 라는 이름의 클래스가 ‘Start’와 ‘Update’ 함수를 어떤 용도로 만들었는지 알게 되면, 이 함수들을 그 용도에 맞게 사용할 수 있습니다.
‘Start’ 함수는 씬을 처음 로드하거나, 이 스크립트가 연결된 게임 오브젝트가 씬에 생성되는 순간 자동으로 호출되는 함수입니다. 즉, 게임이 실행될 때 이 함수 안에 있는 명령어들이 자동으로 실행됩니다.

‘Update’ 함수는 게임이 실행되는 동안 매 프레임마다 이 함수 안에 있는 명령어들이 실행됩니다. 예를 들어, 게임이 초당 30프레임으로 동작한다면, ‘Update’ 함수 안의 명령어들은 초당 30번 반복적으로 실행됩니다.

이렇게 ‘MonoBehaviour’ 부모 클래스에서 미리 정의된 ‘Start’와 ‘Update’와 같은 함수들을 활용하면, 우리가 원하는 기능을 직접 만들지 않아도 용도에 맞게 사용할 수 있습니다.
따라서, ‘MonoBehaviour’ 부모 클래스가 제공하는 함수들에 어떤 것이 있고, 그 기능이 무엇인지를 잘 아는 것이 중요합니다. 그렇게 하면, 우리는 게임 개발에 필요한 기능들을 일일이 직접 만들지 않더라도 원하는 게임 기능들을 손쉽게 구현할 수 있습니다.
더 공부할 자료
스크립터블 오브젝트를 능숙하게 사용하는 능력은 이제 유니티 게임 개발에 필수적으로 요구되고 있습니다.
특히 AI 코딩 시대가 되면서 데이터와 코드를 분리해서 작업하는 방식의 중요성이 더 커졌습니다. 코드를 더 작게, 기능별로 쪼개어 작성해야 관리가 편하기 때문입니다.
"유니티 6 스크립터블 오브젝트: 기초에서 활용까지"는 유니티 입문 단계를 끝내고 좀 더 심화된 지식을 익히고자 하는 프로그래머를 대상으로 쓰여진 책입니다. 책 내용은 다음 링크를 참고하시기 바랍니다.