예지의 개발 로그포스 (Yeji's Log Force)

Unity로 게임 개발하기 #1 본문

[Unity] Projects & Study/Simple Platformer Game

Unity로 게임 개발하기 #1

Yeji Heo 2021. 8. 12. 11:06

유니티에서의 게임:

게임 안의 Object들이 상호작용하며 이루어진다.

오브젝트는 Scene에서 Camera를 통해 볼 수 있다.

 

 

** Object

Object인 Main Camera

 

오브젝트는 보이는 물체일수도(, 무기 등) 있고, 보이지 않는 세부기능(체력 등)일수도 있다.

오브젝트 내부의 속성을 다루는(Object를 이루는) 항목은 컴포넌트라고 한다.

Inspector의 Component

** Prefab

특정 게임 오브젝트의 설계도 역할. 프리팹을 통해 같은 타입의 여러 게임오브젝트를 만들어 낼 수 있다. 그러므로

1. 게임오브젝트를 바꿔도 프리팹은 바뀌지 않지만

2. 프리팹을 바꾸면 게임오브젝트도 바뀐다.

파란 정육면체 모양으로 표시된 Prefab

 


C# Script 

1. 시작 시 기본설명

- using키워드

다양한 기능을 활용할 수 있게 해준다.

- MonoBehaviour

Unity에서 new Script를 생성하면 public class 이름 : MonoBehaviour을 확인할 수 있다.

MonoBehaviour가  붙은 스크립트는  Inspector 에 붙일 수 있다 .

-Start(): 게임이 시작할 때 한 번 실행시키는 method.

-Update(): 게임이 시작하고 계속 실행시키는 method.

2. Log 찍어보기

Start()시키면서 Log를 찍어주도록 이 부분에 Debug.Log("Start")코드를 추가해주자.

그럼 Play시킬 때 Console에서 Start라는 Log를 한 번 찍어주는 것을 확인할 수 있다.

 

마찬가지로 Update()에 이를 작성 해주면 Update()의 특성에 따라 반복적으로 Log를 출력한다.

 

3. C#기본 문법

- 클래스

앞에서 언급한 prefab C#에서는 유사하다고 볼 수 있다.

클래스가 ""의 역할을 하기 때문이다.

게임에서의 각 기능들을 청사진으로 만들어 두고 활용한다고 생각하면 된다예) Class Rtan

- 변수

게임에서의 정보나 체크할 사항을 변수를 통해 관리한다. 예) int power

- 함수

어떤 기능을 담당한다. 함수에 값을 넣어주면 함수 내부에서 어떤 기능을 처리하고 return한다. 예) Start()

- 제어문

조건에 따라 특정기능을 실행시킬지 말지 결정하는 문법이다. 예) if, else if…


충돌 체크

- Rigidbody : Object에 중력을 넣어주는 효과. 이게 있어야 충돌체크가 가능하다.

- Collider: Object의 범위를 알아야 충돌체크가 가능하다. 이를 Collider로 설정해준다.

Collider를 기준으로 충돌을 감지한다.

Component인 Rigidbody와 Collider

 

Componet의 정보를 Script에서 사용

Unity Component의 정보를 C#Script에서 활용하고 싶다면, 변수를 선언할 때 접근제어자를 public 으로 선언해주자.

public으로 선언
Script에서 선언한 변수가 Component에 나타난 부분

 

키보드로 입력받기

방향키 왼쪽 버튼
스페이스바

 

카메라가 player를 따라가게

 

게임에서 카메라는 보통 player을 따라가기 마련이다.

Player가 움직여서 화면 밖으로 나가면 카메라도 따라가는 것이 일반적이다. 이를 구현 하는 방법은 다음과 같다.

1. Script에서 처리하여 바꿔주기

2. Hierachy의 특성을 이용하기

  Hierachy는 말 그대로 계층적인 구조를 지닌다.

  따라서 ChildParent를 따라간다.

  즉, Camera는 Player를 따라가게. playercamera를 넣어 주기만 하면 된다.

기존 Main Camera의 위치
Main Camera를 Prefab의 Child로 넣은 모습

 

Comments