총알 UI 만들기

우선 Canvas를 하나 만들어 아래에 TextMeshPro를 추가한 후 현재 Ammo와 연결시켰다.

Weapon스크립트가 SerializedField로 AmmoSlot과 Ammo을 선언했기 떄문에 각각의 Weapon 타입과 ammo의 양을 불러올 수 있으므로 여기서 텍스트 동기화까지 해주었다.

 

피격 효과

DisplayDamage에서는 Start에서 피격 Canvas를 꺼주고 코루틴으로 넘어가는 함수로 ShowDamageImapct라는 함수가 있고 호출되는ShowSplatter가 있는데 ShowSplatter에서 정해진 시간동안 피격 Canvas를 켰다가 끈다.

PlayerHealth의 hitPoints가 감소할 때 DisplayDamage스크립트의 ShowDamageImapct를 호출하게 했다.

죽었을 때 버튼이 가려지는 걸 방지하기 위해 Sort Order는 Game Over Canvas보다 낮은 8로 정했다.

'유데미 강의 > C#과 Unity로 3D 게임 개발하기 : 좀비 러너 게임' 카테고리의 다른 글

플래시라이트와 배터리  (0) 2022.09.22
조명 추가하기  (0) 2022.09.22
ProBuilder 마무리  (2) 2022.09.22
Progrids  (0) 2022.09.22
ProBuilder  (0) 2022.09.22

플래시라이트와 배터리 만들기

카메라 아래에 Spot Light를 달아 정면을 비추게 조정하고

Light컴포넌트를 가져와서 빛이 최소 각도까지 점점 줄어들고 밝기도 점점 줄어드는 코드를 넣었다.

배터리 만들기

플래시라이트 오브젝트의 FlashLightSystem에 빛 각도와 세기를 충전해주는 함수를 작성하고

프로 빌더로 배터리를 만들고

배터리에서 FlashLightSystem의 함수들을 호출하고 자신을 파괴하는 식으로 만들었다.

'유데미 강의 > C#과 Unity로 3D 게임 개발하기 : 좀비 러너 게임' 카테고리의 다른 글

총알 UI 만들기와 피격 효과  (0) 2022.09.22
조명 추가하기  (0) 2022.09.22
ProBuilder 마무리  (2) 2022.09.22
Progrids  (0) 2022.09.22
ProBuilder  (0) 2022.09.22

조명 추가하기

Material의 Emission을 키면 자체발광이 된다.

색을 정해줘야 빛난다.

Intensity로 강도를 조절할 수 있다.

이후 Point Light도 추가해 Wall Light를 비추게 만들었다.

SkyBox 조명 Intensity까지 끄면 많이 어두워진다.

높이면 독특해진다.

'유데미 강의 > C#과 Unity로 3D 게임 개발하기 : 좀비 러너 게임' 카테고리의 다른 글

총알 UI 만들기와 피격 효과  (0) 2022.09.22
플래시라이트와 배터리  (0) 2022.09.22
ProBuilder 마무리  (2) 2022.09.22
Progrids  (0) 2022.09.22
ProBuilder  (0) 2022.09.22

ProBuilder 마무리

Face 모드에서 Flip Normal을 사용하면 바깥쪽에서 안쪽의 모양을 볼 수 있다. 반대로는 불가

Edge 모드에서 Vertex 두 개를 클릭하고 Connect Verticles를 하면 Vertex끼리 이어진다.

문마다 설정해서 한 방씩 선택할 수 있다.

벽에 텍스처 칠하기

Material Editor로 Material을 등록한 뒤 Alt + ~로 사용할 수 있다.

텍스처를 변경하는 방법 중 Tile Offset을 변경하는 방법은 여러 개가 있는데

하나는 Material에 접근하여 Tiling을 조절하는 방법이고

다른 하나는 ProBuilder에서 적용할 면들을 선택해서 Tiling부분을 바꾸면 된다.

그리고 저 좌표축을 움직이면 패턴도 바뀐다.

Swap UV로 가로 세로 패턴 축을 바꿀 수 있다.

'유데미 강의 > C#과 Unity로 3D 게임 개발하기 : 좀비 러너 게임' 카테고리의 다른 글

플래시라이트와 배터리  (0) 2022.09.22
조명 추가하기  (0) 2022.09.22
Progrids  (0) 2022.09.22
ProBuilder  (0) 2022.09.22
게임 디자인  (0) 2022.09.22

Progrids

com.unity.progrids로 다운받으면 

이처럼 Progrids를 사용할 수 있다.

위에서부터

- 그리드 간격

- 그리드가 보일 지 말지

- 스냅 기능 사용할 지 말지

- 모든 오브젝트를 스냅 할 지 말지

- 그리드의 중앙에 고정 시킬지 말지

- x축 그리드

- y축 그리드

- z축 그리드

- 3D 그리드

벙커 만들기

Progrids를 켠 상태로 ProBuilder의 New Poly Shape를 통해 자신만의 폴리곤을 만들 수 있다.

면을 선택하고 backSpace를 누르면 삭제된다.

Shift를 누르고 이동시키면 밀어낸다.

Vertex 모드에서 두 개 이상의 Vertex를 선택하고 Collapse를 누르면 합쳐진다.

이후 모든 Vertex를 선택하여 Weld Verticles를 하면 비슷한 부분에 있는 버텍스들끼리 합쳐진다. (빈공간 없어짐)

'유데미 강의 > C#과 Unity로 3D 게임 개발하기 : 좀비 러너 게임' 카테고리의 다른 글

조명 추가하기  (0) 2022.09.22
ProBuilder 마무리  (2) 2022.09.22
ProBuilder  (0) 2022.09.22
게임 디자인  (0) 2022.09.22
좀비 추가하기  (0) 2022.09.21

ProBuilder

패키지 매니저에서 ProBuilder를 설치할 수 있다.

Tools - ProBuilder Window를 키면 프로빌더를 사용할 수 있다.

Shift 좌클릭을 하면 사이즈만큼의 견본이 나온다.

Center Pivot으로 피봇 위치를 중앙으로 만들 수 있다.

Edge 모드에서 Insert Edge Loop를 선택하면 선택한 edge가 가로면 세로 세로면 가로 edge가 생성된다.

한 모서리를 선택하고 Select Edge Loop를 누르면 연결된 Edge들이 모두 선택된다.

위 기능은 Face 모드에서도 Select Face Loop라고 있다.

Extrude Faces를 누르면 면을 튀어나오게 한다.

선택할 때 Select Hidden : On을 하면 안 보이는 곳까지 선택된다.

Vertex Colors로 색을 선택하고 Apply하면 색이 입혀진다.

다른 총알도 만들었다.

'유데미 강의 > C#과 Unity로 3D 게임 개발하기 : 좀비 러너 게임' 카테고리의 다른 글

ProBuilder 마무리  (2) 2022.09.22
Progrids  (0) 2022.09.22
게임 디자인  (0) 2022.09.22
좀비 추가하기  (0) 2022.09.21
탄약 픽업  (0) 2022.09.20

게임 디자인

테마

정신 병원이나 정부가 사람들에 대해 실험을 한 연구 시설과 같은 버려진 지하 수용소

레벨 흐름

- 숲에서 시작하여 돌아다니면서 약간의 물건을 얻을 수 있고 입구를 찾는다.

- 시설의 계단을 타고 내려간다.

- 던전(다음 레벨)으로 들어가는 함정 문을 찾는다.

레벨 요구사항

- 적어도 1개 이상의 갈라지는 경로

- 적어도 2개 이상의 싸움 이벤트

-  적어도 1개 이상의 많은 적들이 있는 큰 싸움 지역

디자인 스케치 가져오기

디자인 스케치를 한 것을 jpg 파일로 가져와서 3D Object - Quad를 생성하고 바닥에 늘려서 이미지를 Material에 첨부했다.

그리고 사진 사이즈를 대강 맞춰주었다.

Terrain

그리고 Terrain을 추가했다.

'유데미 강의 > C#과 Unity로 3D 게임 개발하기 : 좀비 러너 게임' 카테고리의 다른 글

Progrids  (0) 2022.09.22
ProBuilder  (0) 2022.09.22
좀비 추가하기  (0) 2022.09.21
탄약 픽업  (0) 2022.09.20
무기에 따른 탄약  (0) 2022.09.20

좀비 추가하기

좀비 에셋

 

Zombie | 3D 휴머노이드 | Unity Asset Store

Elevate your workflow with the Zombie asset from Pxltiger. Find this & other 휴머노이드 options on the Unity Asset Store.

assetstore.unity.com

에셋을 다운받은 뒤 이전에 Enemy에 있던 값들을 옮기고 좀비에게 맞춰준다.

이후 애니메이터의 애니메이션 Motion에 Idle,Move,Attack,Die 애니메이션을 집어 넣는다.

Die 애니메이션이 반복되므로 bool값으로 체크해서 중복 실행이 되지 않게 설정해준다.

Weapon 스크립트의 총 쏘는 부분에 체크

EnemyAI 스크립트에서 죽고나서 계속 걸어오는 버그 IsDead로 체크해 해결하기

내 경우엔 NavMeshAgent.SetDestination의 NullReference오류가 떠서 enabled도 체크해줬다.

실행

추가로 Enemy에게 Attack애니메이션 이벤트를 넣어줘야 AttackHitEvent가 발동되어 플레이어의 체력이 달게된다.

'유데미 강의 > C#과 Unity로 3D 게임 개발하기 : 좀비 러너 게임' 카테고리의 다른 글

ProBuilder  (0) 2022.09.22
게임 디자인  (0) 2022.09.22
탄약 픽업  (0) 2022.09.20
무기에 따른 탄약  (0) 2022.09.20
public enum과 private Class  (0) 2022.09.20

탄약 픽업

트리거에 닿았을 때 플레이어면 Ammo에 접근해 IncreaseCurrentAmmo를 호출하여 자신은 파괴하고 해당 타입의 총알 개수를 늘린다.

Prefab Variant

부모 수준에서 무엇인가를 변경할 때 모든 픽업이 특정한 일을 하기 원할 때 Prefab Variant를 사용하면 편하다.

- Prefab Variant에서 프리펩 인스턴스의 자식은 삭제되거나 움직일 수 없고 구성 요소들은 다시 불러올 수 없다.

여기서 할 수 있는 건 원래는 탄약을 개봉하고 그곳에서 탄약을 집어 들고 변경하는 것 밖에 없다. => 모든 Prefab Variant 변경

또는 연결을 끊을 수도 있는데 이러면 자체 프리펩이 된다.

큐브를 그대로 두고 다른 색상으로 변경하거나 큐브의 메쉬를 끌 수도 있다.

또는 탄약 픽업으로 가서 큐브를 삭제하고 탄약 픽업 자체에 메쉬가 없다고 할 수도 있다.

아래처럼 Variant의 근원이 되는 Ammo Pickup은 자식을 없애고 Variant에만 추가하는 방법이 있다.

 

'유데미 강의 > C#과 Unity로 3D 게임 개발하기 : 좀비 러너 게임' 카테고리의 다른 글

게임 디자인  (0) 2022.09.22
좀비 추가하기  (0) 2022.09.21
무기에 따른 탄약  (0) 2022.09.20
public enum과 private Class  (0) 2022.09.20
무기 교체하기  (0) 2022.09.20

무기에 따른 탄약

먼저 Weapon클래스에 AmmoType을 SerializeFiled로 선언해주어 인스펙터에서 선택할 수 있게 한다.

또한 각 총의 마다 총알의 타입을 다르게 측정했다.

각 총마다 Ammo Type을 설정해줬다.

이후에 총알 소비와 불러오기를 ammoType을 매개변수로 하여 GetAmmoSlot으로 AmmoSlot을 받는 구조로 바꾸었다.

 

버그

Carbine 총에서 줌인 후 무기 변경 시 줌인이 되어있는 버그가 있었는데 OnDisable을 사용해 고쳤다.

'유데미 강의 > C#과 Unity로 3D 게임 개발하기 : 좀비 러너 게임' 카테고리의 다른 글

좀비 추가하기  (0) 2022.09.21
탄약 픽업  (0) 2022.09.20
public enum과 private Class  (0) 2022.09.20
무기 교체하기  (0) 2022.09.20
무기 구별  (0) 2022.09.20

+ Recent posts