대딩 기록(~22.01)/Unity 공부노트

"아니 게임이 왜 지향을 하는데;;" 유니티(Unity)와 객체 지향

문과 해달 2021. 3. 15. 01:43

프로그래밍을 기웃거리다 보면 객체 지향, 과정 지향 등의 단어를 곧잘 찾아볼 수 있은데요.

 

이는 프로그래밍 패러다임(Programming Paradigm)들의 한 종류로, 

이 외에도 함수형, 명령형 등 수많은 종류의 패러다임들이 존재한다고 합니다.

 

 

 

 

여기서 프로그래밍 패러다임이란 프로그래밍의 방법론 차이라고 말할 수 있는데,

각각의 프로그래밍 언어들은 하나 또는 여러개의 프로그래밍 패러다임에 따르고 있습니다.

이에 따라 지원하고, 또 제한하는 함수나 기능이 상이하다고 볼 수 있어요!

 

당연히 그에 따라 프로그래머들의 관점이나 접근방법에도 큰 영향을 줍니다.

 

저희가 쓰고 있는 유니티는 객체 지향 프로그래밍의 성향을 주로 하고 있는데요.

그렇다면 객체 지향 프로그래밍(Object Oriented Programming)이란 무엇일까요?

 

영단어 그대로 오브젝트(object)를 단위로 프로그램을 파악하는 방법이며,

각 오브젝트, 즉 수많은 객체들의 상호작용을 통해 프로그램이 작동하게 됩니다.

 

 

만약 게임을 만들게 된다면, 플레이어부터 적 몬스터, 장애물, 총알 등 수많은 오브젝트들이 생기고

각자가 주어진 스크립트에 따라 정해진 역할을 수행하게 될겁니다.

 

 

 

 

하지만 이렇게 개별적인 수행으로는 게임 전체에 대한 통제가 쉽지 않겟죠.

그래서 보통 오브젝트가 아닌 게임 단위로 움직이는 스크립트

게임 매니저(Game Manager)를 사용해 점수 계산, 승패 판정 등을 비롯 게임 전체를 관리하게 됩니다.

 

그렇기에 이는 거의 모든 게임에서 가장 먼저시되는 스크립트이며,

그 중요성을 말해주듯,

유니티 에디터에서도 스크립트의 이름을 'Game Manager'로 설정하면

고유의 기즈모(아이콘)을 활용해 표시를 해줍니다.

 

유니티 에디터 내 GameManager

 

각각의 특성(스크립트)를 지닌 수많은 객체

이를 중앙에서 제어해주는 GameManager 스크립트!

 

 

게임제작의 기둥이라 할 수 있겠네요