앞 강의에 이어, 클래스 개념에 대해 좀 더 자세히 살펴 보겠습니다.
이제 클래스 내부를 살펴보도록 하겠습니다. 여기에 ‘개(Dog)’라는 클래스가 있다고 해 보겠습니다.

그런데 클래스 안에는 두 가지 요소가 있습니다. 첫 번째 요소는 속성입니다. 속성은 개가 가지고 있는 특징들, 예를 들면 이름, 품종, 크기, 성별, 털 색깔 등을 말합니다.

두 번째 요소는 행동입니다. 예를 들어, 개는 짖거나 물거나 꼬리를 흔드는 등의 행동을 합니다.

이제 ‘개’라는 클래스로부터 개별 개들이 생성되는 과정을 살펴 보겠습니다.

이 개별 개들을 우리는 객체라고 부릅니다(또는 클래스의 인스턴스라고 부릅니다).
플라톤의 이론을 떠올려 보면, ‘개’라는 클래스로부터 구체적인 개들이 만들어집니다. 예를 들어, ‘브라우니’, ‘땡칠이’와 같이 다양한 개들이 생겨날 수 있습니다.
이 개들은 겉모습이나 짖는 소리, 꼬리를 흔드는 모습 등은 다를 수 있지만, 모두 같은 속성과 행동을 공유합니다.
예를 들어, ‘브라우니’는 ‘왈왈’ 짖고, ‘땡칠이’는 ‘멍멍’하고 짖지만, 둘 다 짖는 행동을 가지고 있다는 점은 똑같습니다.
마찬가지로 ‘브라우니’는 파란색 목줄을 착용하고, ‘땡칠이’가 빨간색 목줄을 착용할 수 있지만, 둘 다 목줄이라는 속성을 가지고 있다는 사실은 똑같습니다.
이들은 ‘개’라는 클래스에서 파생되어 나온 다양한 객체들입니다. 즉, 클래스가 정의해 놓은 다양한 속성과 행동들을 그대로 가지고 태어납니다. 다만, 구체적인 내용은 다를 수 있습니다. 예를 들어, 어떤 색의 목줄을 가지고 있는지, 어떤 방식으로 짖는지 등은 다르지만, 공통적인 속성과 행동을 가지고 있는 것입니다.
추가로, 여기서 중요한 개념이 등장하는데 바로 ‘인스턴스화(instantiate)’입니다. 클래스로부터 객체가 만들어지는 과정을 인스턴스화라고 부릅니다.
유니티에서도 클래스로부터 객체를 만들어내는 과정에서 ‘Instantiate’라는 명령어를 사용합니다. 이 명령어는 앞으로 유니티를 사용하면서 자주 접하게 될 것이므로 기억해 두시기 바랍니다.
더 공부할 자료
스크립터블 오브젝트를 능숙하게 사용하는 능력은 이제 유니티 게임 개발에 필수적으로 요구되고 있습니다.
특히 AI 코딩 시대가 되면서 데이터와 코드를 분리해서 작업하는 방식의 중요성이 더 커졌습니다. 코드를 더 작게, 기능별로 쪼개어 작성해야 관리가 편하기 때문입니다.
"유니티 6 스크립터블 오브젝트: 기초에서 활용까지"는 유니티 입문 단계를 끝내고 좀 더 심화된 지식을 익히고자 하는 프로그래머를 대상으로 쓰여진 책입니다. 책 내용은 다음 링크를 참고하시기 바랍니다.