[Unity] 2D Roguelike 01

oat·2024년 4월 13일
0

Unity

목록 보기
1/2

https://learn.unity.com/project/2d-roguelike-tutorial?uv=5.x
위 강의를 들으면서 정리한 내용입니다

Day 01

2D Roguelike Setup and Assets

1. Project Introduction

유니티 애셋스토어에서 패키지를 다운로드 받는다
https://assetstore.unity.com/packages/templates/tutorials/2d-roguelike-29825

2. Player and Enemy Animations

플레이어 생성

GameObject -> Create Empty로 Player를 생성한다

Player에 애니메이션을 추가한다
1. PlayerIdle: 가만히 서있을 때 위아래로 들썩거리는 애니메이션
2. PlayerChop: 플레이어가 덤불을 자를 때의 애니메이션
3. PlayerHit: 플레이어가 몹에게 맞을 때의 애니메이션

Player에 box collider 2D와 rigid body 2D를 Add Component로 추가한다
box collider 2D: 플레이어와 몹의 충돌을 확인할 수 있게 함
rigid body 2D: 물리엔진을 사용해 플레이어를 이동시킬 수 있게 함
-> 여기에서 Is Kinematic을 체크하면 플레이어가 날거나 튀지 않고 그리드 베이스의 장소에서 돌아다니도록 한다
= 물리효과를 사용하지 않는다

주의. Is Kinematic 옵션이 사라졌다고 한다

디폴트로 Dynamic으로 되어있으므로 Kinematic으로 바꾸면 될 듯 하다

참고: https://forum.unity.com/threads/cant-find-the-iskinematic-on-off-pick.469802/

적 생성

플레이어와 같은 방식으로 Enemy1과 Enemy2 생성한다
두 적은 같은 두 상태(Idle, Attack)를 사용하기 때문에 animater overrode controller를 생성한다
animater overrode controller: 머신 및 그것을 조절하기 위한 스크립트는 같은 것을 사용하도록 하지만, 각 상태에서는 다른 애니메이션을 사용할 수 있도록 한다

Create -> Animator Override Controller 선택

Enemy2로 이름짓고 Controller에 Enemy1을 끌어다 놓는다

그리고 아래 두 항목에 Enemy2의 애니메이션을 넣어 준다

Enemy2 항목에서의 컨트롤러에 "Enemy2" Animation Controller를 넣어 준다

이렇게 세 Prefab을 만들고,
Save Scene을 실행하여 Scenes 폴더에 Main 이름으로 저장한다

3. Creating the Tile Prefabs

바닥 생성

위와 같이 GameObject -> Create Empty로 생성한다

Sprite Renderer 추가
Sprite로는 첫 바닥 이미지를 선택하고, Sorting Layer를 floor로 선택하고 Prefab에 추가한다
그리고는 Sprite를 다음 바닥 이미지로 바꾸면서 계속 재사용 후, Prefab에 넣기를 반복한다

출구 생성

Floor를 재사용한다
그러나 Player가 출구에 도착했을 때 알 수 있어야 하기 때문에 Box Collider 2D를 추가한다

Box Collider 2D를 "Is trigger"로 설정하여
실제로 플레이어가 공간으로 이동할 수 있게 하면서도 충돌을 감지한다

플레이어 밑 레이어지만 바닥보다는 위에 있도록 Item 레이어를 지정한다

Exit로 태그를 지정하고 Prefab으로 옮긴다

음식 생성

Exit를 재사용한다
Sprite에 과일 사진을 선택한다

그리고 Sorting Layer를 Items로, 태그를 food로 바꿔 준다

음식도 플레이어가 먹었는지 여부를 감지해야 하기 때문에 Box Collider 2D를 "Is Trigger"가 켜진 채로 사용한다

Soda도 태그만 바꾸어 재사용한다

적이나 플레이어의 길을 막는 역할이 아니라 그저 플레이어가 그 위에 올라가면 줍도로 되어 있으므로 Layer는 디폴트로 둔다

바깥 벽 생성

맵 밖으로 나갈 수 없도록 하는 바깥 벽을 생성한다
Sprite에 벽 사진을 선택하고,

들어오지 못하도록만 하면 되므로 "Is Trigger" 옵션을 끈다

태그와 레이어를 수정한다

Sorting Layer를 Floor로 설정한다

Sprite의 이미지만 계속 바꿔가며 벽 Prefab들을 생성한다

안쪽 벽 생성

맵 안의 평지에서 길을 막는 역할의 안쪽 벽을 생성한다
Sprite를 바꾸고,

플레이어와 적을 막아야 하므로 Sorting Layer를 Items로 설정한다
Sprite의 사진만 바꿔가며 여러 개 생성한다

0개의 댓글