유니티

유니티 3D 쿼터뷰 액션 게임 - 아이템 먹기 / 공전 물체 만들기 / RotateRound()

nock_ji 2022. 4. 21. 21:41

유니티 3D 쿼터뷰 액션게임 만들기

 

 

👾 아이템 먹기 & 공전 물체 만들기  👾

 

 

 


 

1.  변수 생성

✏️  탄약, 동전, 체력, 수류탄(필살기) 아이템 먹기

 

- 탄약, 동전, 체력, 수류탄 변수 생성

- 각 수치의 최대값을 저장할 변수도 생성 

 

 

🔻 인스펙터 창에서 초기값 설정 

 


 

2. 아이템 입수

 

- OnTriggerEnter() 에서 트리거 이벤트 작성 

- enum 타입 변수 + switch 문으로 간단명료하게 조건문 생성 

- enum 타입에 맞게 아이템 수치를 Player 수치에 적용하기

 

🔻 플레이어 수치가 최대값을 넘지 않도록 로직 추가 

Item logic. enum Type 변수 참고

 

 

🔻 먹은 아이템 삭제 비활성화

 

 

 


 

3.  공전 물체 만들기

 

 

🔻 공전하는 물체를 컨트롤하기 위해 배열변수 생성 

public GameObject[] grenades;

 

🔻 빈 오브젝트에 4방향으로 공전할 오브젝트 생성 (Create Empty)

 

 

 

🔻 4방향으로 공전 오브젝트에 수류탄 Prefab 추가 

 

- 드랍 아이템과 다르게 재질 변경 ( Weapon Grenade Orbit ) 

- Light & Particle System 컴포넌트 추가

 

 

 

✏️  잔상이 남는 파티클 효과

Particle System - Simulation Space (World) / Emission - Rate over Distance 만 설정 

 

 


 

4. 공전 구현

 

 

- 4방향 공전 오브젝트 새로운 스크립트 생성 & 추가

 

 

📌  RotateAround() 

타겟 주위를 회전하는 함수 (타겟 위치, 회전축, 회전 수치)

 

 

 

📣  RotateAround()는 목표가 움직이면 일그러지는 단점이 있다

Player가 움직이면 따라오지 않음 

 

 

- 직접 transform.position을 결정

- RotateAround() 후의 위치를 가지고 목표와의 거리를 유지

 

 


 

✏️ 수류탄을 먹었을 때 하나 씩 Player 주변에 생기는 효과 

 

🔻 안에 있는 각 수류탄들을 Player 수류탄 배열 변수에 할당

 

 

🔻 안에 있는 각 수류탄들을 Inspector창에서 체크 해제 비활성화 

 

 

 

🔻 Player로직에서 수류탄 개수대로 공전체가 활성화 되도록 구현