본문 바로가기
컴퓨터·IT/<누구나 할 수 있는 유니티 2D 게임 제작>

09. 스크립트로 게임 오브젝트 조작하기 (마지막 회)

by BOOKCAST 2022. 11. 12.
반응형

 


 

스크립트로 게임 오브젝트 조작하기

 

스크립트로 캐릭터를 조작해보겠습니다. 유니티에서는 프로그램을 스크립트라고 하며 스크립트를 쓰기 위해서 C#이라는 프로그래밍 언어를 사용합니다. 기존 컴포넌트는 인스펙터 뷰에서 [Add Component] 버튼으로 추가할 수 있었지만 스크립트는 직접 만들 것이기에 아직 어디에도 존재하지 않습니다. 먼저 스크립트를 만들고 컴포넌트로서 게임 오브젝트에 어태치합니다.


스크립트 파일(PlayerController) 만들기
플레이어 캐릭터를 움직이게 하는 스크립트를 만들어보겠습니다. 프로젝트 뷰의 리스트에서 Player 폴더를 선택하고 그 안에 새로운 스크립트를 만듭니다.

프로젝트 뷰의 왼쪽 상단에 있는 [+] 버튼을 클릭합니다. 풀다운 메뉴가 열리면 ‘C# Script’를 선택합니다.

 

 

프로젝트 뷰에 NewBehaviourScript라는 C# 스크립트 파일이 만들어집니다. 만들어진 파일의 이름은 바로 변경할 수 있습니다. 파일 이름을 PlayerController로 변경하면 스크립트의 파일명이 됩니다.

 

 

스크립트 이름은 처음 만들 때 적절한 이름을 붙이는 것이 좋습니다. 나중에 스크립트 이름을 변경하면 파일명과 소스 코드 내부의 이름이 달라져 관리가 어려워집니다. 이번에는 플레이어를 조작하는 스크립트이니 이름을 PlayerController로 했습니다. 스크립트에는 기능과 어울리는 이름을 붙이도록 합시다.

TIP
접두어와 접미어

스크립트명은 기능을 알 수 있도록 ‘접두어’와 ‘접미어’를 쓸 때가 있습니다.
예를 들어 게임에서 조작할 수 있는 플레이어 캐릭터의 스크립트명 앞에 ‘Player’라는 단어를 붙이거나 생략해서 ‘PLY’나 ‘PL’처럼 세 글자 혹은 두 글자로 쓰기도 합니다. 이름 머리를 보면 무슨 데이터인지 알 수 있습니다. 이것이 접두어입니다. 접미어는 이름 뒤에 붙는 단어로 무엇인가를 조작하면 ‘Controller’라고 하거나 무엇인가를 관리하면 ‘Manager’라고 붙입니다.
‘접두어’, ‘접미어’에 정해진 규칙은 없습니다. 이름을 대충 지으면 나중에 작성자도 알 수 없게 돼 규칙을 정하면 더 쉽게 관리할 수 있습니다.


스크립트 어태치하기
스크립트도 컴포넌트의 하나입니다. 앞서 게임 오브젝트에 Rigidbody 2D나 Collider 2D를 추가한 것처럼 게임 오브젝트에 어태치해서 사용합니다. 게임 오브젝트에 스크립트를 어태치하는 방법은 크게 두가지입니다.

Add Componet 버튼으로 어태치하기
스크립트를 어태치하고 싶은 게임 오브젝트를 선택하고 인스펙터 뷰의 [Add Component] 버튼을 클릭한 후 ‘Scripts’를 선택합니다.

 

 

앞서 만들었던 스크립트 파일이 목록에 나타납니다. 왼쪽 끝에 아이콘이 있는 것이 직접 만든 스크립트이며 이를 선택하면 어태치됩니다.


드래그 앤 드롭으로 어태치하기
프로젝트 뷰에 있는 스크립트 아이콘을 계층 뷰나 씬 뷰의 게임 오브젝트에 드래그 앤 드롭해 어태치할 수 있습니다.

 

 

게임 오브젝트를 선택한 상태에서 인스펙터 뷰의 각 컴포넌트 사이에 드래그 앤 드롭해 어태치할 수도 있습니다.
 
TIP
원하는 게임 오브젝트에 확실하게 어태치하려면 게임 오브젝트가 많아지거나 겹쳐 있으면 원치 않는 게임 오브젝트에 어태치될 수 있습니다. 이때는 계층 뷰나 인스펙터 뷰에 드래그 앤 드롭하거나 [Add Component] 버튼으로 어태치하는 방법이 좋습니다.

스크립트가 어태치된 게임 오브젝트를 선택하면 인스펙터 뷰에 스크립트 정보가 표시됩니다. 목록을 보면 Player Controller 스크립트의 두 단어 사이에 공백이 있습니다. 이는 유니티 에디터가 읽기 쉽도록 자동으로 넣어준 것입니다. 단어를 대문자로 시작하면 유니티가 자동으로 공백을 넣습니다.

 



스크립트 내용 살펴보기
만들어진 스크립트 내용을 살펴봅시다. 프로젝트 뷰의 Player Controller의 C# 아이콘을 더블 클릭합니다. 스크립트를 편집하기 위한 비주얼 스튜디오Visual Studio가 실행돼 C#의 소스 코드가 표시됩니다.

 


새로 만든 스크립트에는 다음처럼 18줄의 프로그램 코드가 있습니다. 내용은 아직 빈 상태입니다.

 



External Tool 설정하기
더블 클릭했지만 비주얼 스튜디오가 실행되지 않거나 스크립트 파일이 열리지 않는다면 메뉴의 ‘Unity ➞ Preferences...’를 선택합니다.

 


External Tools에 있는 External Script Editor에 비주얼 스튜디오가 설정되었는지 확인합니다. 이곳에서는 스크립트를 편집할 에디터를 설정할 수 있습니다. 최신 유니티를 설치하면 설정이 변경될 수 있으니 설정을 확인해봅시다.


키 입력으로 게임 오브젝트를 조작하는 스크립트 만들기

 

 

Player Controller에 스크립트를 작성해보겠습니다. 지금부터 만드는 것은 사이드뷰 게임의 캐릭터입니다.

먼저 컴퓨터의 좌우 화살표 키를 누르면 캐릭터가 좌우로 이동할 수 있도록 하겠습니다. 스크립트는 게임 캐릭터를 움직이도록 하는 지시서가 됩니다.

다음은 새로운 내용이 추가된 스크립트입니다. 변경된 부분은 파란색으로 강조했습니다(이하 동일). // Rigidbody2D형 변수 등 //로 시작하는 부분에서 줄이 바뀌는 부분까지는 작성하지 않아도 됩니다. 

 

 

여기까지 완료되면 캐릭터에 어태치된 Rigidbody 2D의 Freeze Rotation의 Z 값을 체크합니다. 게임 오브젝트의 좌우에서 물리적인 힘을 가하면 바닥이 둥근 Capsule Collider 2D는 옆으로 넘어지지만 Freeze Rotation의 Z를 체크해 Z축 값을 고정하면 이 현상을 막을 수 있습니다.

 

 

지금까지의 작업을 저장하고 에디터에서 게임을 실행해봅시다.


게임 실행하기

 

 

[▶]을 클릭해 게임을 실행합니다. 키보드의 좌우 화살표 키를 눌러봅시다. 오른쪽 화살표 키를 누르면 오른쪽으로, 왼쪽 화살표 키를 누르면 왼쪽으로 이동합니다.

TIP
제대로 동작하지 않는다면
제대로 동작하지 않으면 스크립트 내용을 확인합니다. 대문자나 소문자의 입력이 다르거나 행의 마지막에 세미콜론이 빠져 있거나 불필요한 공백 문자는 없는지 등을 확인해봅시다.

반응형

댓글