예지의 테크 로그포스 (Yeji's Tech Log Force)
Unity로 게임 개발하기 #1 본문
유니티에서의 게임:
게임 안의 Object들이 상호작용하며 이루어진다.
오브젝트는 Scene에서 Camera를 통해 볼 수 있다.
** Object
오브젝트는 보이는 물체일수도(적, 무기 등) 있고, 보이지 않는 세부기능(체력 등)일수도 있다.
오브젝트 내부의 속성을 다루는(Object를 이루는) 항목은 컴포넌트라고 한다.
** Prefab
특정 게임 오브젝트의 설계도 역할. 프리팹을 통해 같은 타입의 여러 게임오브젝트를 만들어 낼 수 있다. 그러므로
1. 게임오브젝트를 바꿔도 프리팹은 바뀌지 않지만
2. 프리팹을 바꾸면 게임오브젝트도 바뀐다.
C# Script
1. 시작 시 기본설명
- using키워드
- MonoBehaviour
Unity에서 new Script를 생성하면 public class 이름 : MonoBehaviour을 확인할 수 있다.
-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를 기준으로 충돌을 감지한다.
Componet의 정보를 Script에서 사용
Unity Component의 정보를 C#Script에서 활용하고 싶다면, 변수를 선언할 때 접근제어자를 public 으로 선언해주자.
키보드로 입력받기
카메라가 player를 따라가게
게임에서 카메라는 보통 player을 따라가기 마련이다.
Player가 움직여서 화면 밖으로 나가면 카메라도 따라가는 것이 일반적이다. 이를 구현 하는 방법은 다음과 같다.
1. Script에서 처리하여 바꿔주기
2. Hierachy의 특성을 이용하기
Hierachy는 말 그대로 계층적인 구조를 지닌다.
따라서 Child는 Parent를 따라간다.
즉, Camera는 Player를 따라가게. player에 camera를 넣어 주기만 하면 된다.
'[Unity] Projects & Study > Simple Platformer Game' 카테고리의 다른 글
Unity로 게임 개발하기 #4 (0) | 2021.08.21 |
---|---|
Unity로 게임 개발하기 #3 (0) | 2021.08.20 |
Unity로 게임 개발하기 #2 (0) | 2021.08.17 |