[유니티] Unity 입문하기 2 :: 기본 개념 및 Script 소개
이번 글에서는 유니티를 사용하기 위해 알아야 할 기본적인 개념들을 설명하겠습니다.
1. Scene
Scene은 한국어로 장면입니다. 유니티에서도 똑같이 하나의 레벨 또는 스테이지를 뜻 합니다. 하나하나의 Scene 파일들에 우리가 만들어가는 게임 장면들이 들어갑니다. 그리고 참고로 Scene파일의 확장자는 .unity
입니다.
예시로 4개의 Scene을 만들어 봤습니다. 한번 StartScene.unity
, Level1.unity
, Level2.unity
Scene들을 열어볼까요?
보시다시피 Scene들은 서로 다른 세상(World)입니다.
2. GameObject
Hierarchy창에 있는 모든 애들이 게임 오브젝트입니다. Main Camera
, Directional Light
, 제가 방금 추가한 House
, Sphere
모두 다 게임 오브젝트
입니다.
유니티에서 게임 오브젝트는 한마디로 Box입니다. 기능을 담는 박스입니다.
예를 들어서, 제가 카메라를 만들고 싶으면 빈 게임 오브젝트를 만들고 카메라 기능을 넣으면 됩니다.
유니티에서 기본으로 생성해준 Main Camera
게임 오브젝트를 살펴봅시다.
제가 앞에서 Inspector창은 게임 오브젝트를 클릭하면 기능들을 보여준다고 했었습니다. Main Camera
를 클릭하면 우측의 Inspector창에서 Main Camera
의 기능들이 다 보입니다.
보시면 Main Camera
라는 이름의 박스(게임 오브젝트)가 Transform
, Camera
, GUILayer
, Flare Layer
, Audio Listener
의 기능을 가지고 있다는 것을 Inspecter창에서 확인할 수 있습니다. 아직은 저 많은 기능들이 뭔진 모르겠지만 차근차근히 알게 될 것입니다. 일단은 Main Camera
의 역할을 하기 위해 Camera
기능을 담고 있다는 것은 이해가 될 겁니다.
마지막으로 게임 오브젝트는 중요한 특징이 있습니다. 모든 게임 오브젝트는 Transform
이라는 기능을 가지고 있다는 것입니다. 그 이유는 이 게임 오브젝트는 World( = Scene 안의 세상)에 존재합니다. 그러려면 최소한 자신의 World 상의 위치 또는 자신의 크기를 정보 정도는 가지고 있어야 합니다. Transform
이라는 기능은 위치, 회전, 크기와 관련된 것을 조정합니다. 그렇기 때문에 모든 게임 오브젝트는 Transform
을 항상 가지도록 되어있습니다.
3. Component
Component는 한국어로 구성요소라는 뜻입니다. 게임 오브젝트
의 구성요소
라는 뜻입니다. 제가 위에서 게임 오브젝트는 여러 가지 기능들을 구성요소로 하는 Box
라고 말했습니다. 그 각각의 기능들을 유니티에서는 Component
라고 부릅니다. 이제부터 기능이라는 단어 대신 유니티의 단어인 Component
라고 말하겠습니다. 위에 제가 대표적으로 많이 쓰이는 Component
들을 나열해놨습니다. 게임 오브젝트가 충돌할 수 있게 하는 콜라이더
, 제가 게임을 실행했을 때의 볼 창을 위한 카메라
, 사운드가 들리는 곳을 설정하기 위한 오디오 리스너
(위의 사진에 적은 사운드 리스너는 오타입니다 ㅠㅠ 오디오 리스너입니다!!), 위치, 회전, 크기, 등을 위한 트랜스폼
, 물리적인 상호작용을 위한 리지드 바디
, 내가 정의하는 기능인 스크립트
가 있습니다.
Component
는 여러 가지의 값(변수)들로 구성되어 있습니다.
위의 Transform
Component를 보면 위치나 회전이나 크기를 표현하기 위해 X, Y, Z를 표현하기 위한 값(변수)을 쓰는 것을 확인할 수 있습니다. (이처럼 게임 오브젝트의 컴포넌트를 확인하고 싶으면 그냥 대상 게임 오브젝트를 클릭하면 Inspector창에 뜹니다.)
4. Script
Script
는 Component의 설계 도면입니다. 유니티에서 제공해주는 기본 Component가 아니라 우리가 만들어서 쓰는 것입니다.
물론 유니티에서 제공해주는 Component만으로도 많은 것들을 할 수 있습니다. 하지만 우리는 게임을 만들기 위해서 유니티를 사용합니다. 보통 우리가 원하는 게임을 만들려다 보면 유니티에서 제공해주는 기본 Component만으로는 충분하지 않을 때가 대부분입니다. 그래서 우리가 Script
로 기능을 구현해서 사용하는 겁니다. 저는 이것이 유니티의 핵심 중의 하나라고 생각합니다. 프로그래밍(Script를 만드는 것)을 통해 수많은 것들을 할 수 있게 됩니다.
Script
를 만들면 사용자의 키보드나 조이스틱, 등의 입력에 반응할 수 있고 특정 시간에 이벤트를 발생시킬 수도 있고 정말 많은 것들을 할 수 있습니다. 그런 Script
에 대해서 간단하게 설명해보겠습니다.
Script
를 생성하면 위에 첨부한 사진처럼 Start()
와 Update()
메서드가 자동으로 생성되어 있습니다.
▶ Start()
메서드는 뭘까요?
- 유니티가 자동으로 호출해주는 메서드 중 하나입니다.
- 게임이 시작할 때 딱 한 번만 호출됩니다.
Update()
메서드가 호출되기 직전에 호출됩니다.- 주로, 초기화와 같은 작업을 할 때 많이 쓰게 됩니다.
▶ Update()
메서드는 뭘까요?
- 유니티가 자동으로 호출해주는 메서드 중 하나입니다.
- 매 프레임마다 호출됩니다.
- Frame이란?
- 혹시
FPS
(Frame Per Second)라는 것을 들어보셨나요? - N
FPS
라는 말은 1초마다 N개의 Frame이 일어난다라는 뜻입니다. - 예를 들어서, 60 FPS이면 1초에 60번
Update
메서드가 호출됩니다.
Start
와 Update
메서드 말고도 유니티가 자동으로 호출해주는 특별한 메서드가 여러 개 있습니다. 우리는 그러한 메서드들을 이용해서 사용자들의 Input에 반응하고 Component들의 값을 조정하며 원하는 게임을 만들게 됩니다.
댓글
이 글 공유하기
다른 글
-
[유니티] Unity 입문하기 5 :: Tag와 Name으로 게임 오브젝트 찾기
[유니티] Unity 입문하기 5 :: Tag와 Name으로 게임 오브젝트 찾기
2020.02.22 -
[유니티] Unity 입문하기 4 :: Transform, Rigidbody로 게임 오브젝트 이동시키기
[유니티] Unity 입문하기 4 :: Transform, Rigidbody로 게임 오브젝트 이동시키기
2020.02.22 -
[유니티] Unity 입문하기 3 :: Scripting 기초, Time.deltaTime
[유니티] Unity 입문하기 3 :: Scripting 기초, Time.deltaTime
2020.01.04 -
[유니티] Unity 입문하기 1 :: 유니티 설치 및 화면 구성
[유니티] Unity 입문하기 1 :: 유니티 설치 및 화면 구성
2019.12.24