유니티

유니티 3D 쿼터뷰 액션게임 - 피격 테스터 만들기

nock_ji 2022. 4. 24. 03:51

 

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

 

 

👾  피격 테스터 만들기  👾

 

 

 


 

1.  오브젝트 생성

 

🔻기본 3D 오브젝트 cube 생성 후, Rigidbody 추가

 

적 로직을 작성할 새로운 스크립트 추가 후 cube object에 추가

 


 

2.  충돌 이벤트

 

 

🔻 총알 Prefab의 태그를 Bullet으로 지정 

 

 

 

🔻 Ememy Script

 

- 최대 체력과 현재 체력을 담을 변수 선언 

- Rigidbody, Collider 컴포넌트 불러오기

- OnTriggerEnter() 함수에 태그 비교조건을 작성

- Melee(Hammer)에 대한 데미지, Weapon 충돌 스크립트를 가져와서 demage값을 체력에 적용

- Bullet(Bullet SubMachineGun, Bullet HandGun)에 대한 데미지, Bullet 스크립트를 가져와서 demage값을 체력에 적용

 

 

-총알과 무기의 Collider가 IsTrigger 체크 활성화 되어있는지 확인 

-총알을 위해 Bullet 스크립트에서 OnTriggerEnter() 함수 로직 생성

 

 

🔻 Max, Cur Health 할당

 

 

 


 

3. 피격 로직

 

✏️ 피격을 당했을 때 빨간색으로 처리

 

 

🔻 로직을 담을 코루틴 생성

 

 

 

🔻 Material 변수 생성, Material은 Mesh Renderer 컴포넌트에서 접근 가능 ! 

 

 

- 남아있는 체력을 조건으로 피격 결과 로직 작성

- 데미지를 받으면 기본적으로 red, curHealth가 남았으면 white, curHealth가 없으면 그레이로 변하고 사라짐(비활성화)

 

 

 

🔻 레이어를 추가하여 적 사후 레이어로 분리 (Enemy / EnemyDead)

 

 

 

🔻레이어 번호를 그대로 gameObject.layer에 적용

 

 

🔻 else 문에서 Layer Enemy ➡️ EnemyDead

Layer가 변경되면서 Floor,Wall,EnemyDead와만 반응한다

 

 

 


 

4. 넉백 추가

 

 

✏️  Enemy가 죽을 때 넉백 주기 (curHealth < 0 일 때)

 

🔻 현재 위치에 피격 위치를 빼서 반작용 방향 구하기

 

 

 

📌 normalized 

방향값이 1로 보정된 벡터 

 

📌 AddForce() 

함수로 넉백 구현하기