유니티 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()
함수로 넉백 구현하기
'유니티' 카테고리의 다른 글
유니티 3D 쿼터뷰 액션게임 - 목표를 추적하는 내비게이션 AI / NavMeshAgent (0) | 2022.04.25 |
---|---|
유니티 3D 쿼터뷰 액션게임 - 수류탄 구현하기 / 투척, 던지기 / 폭발 (0) | 2022.04.24 |
유니티 3D 쿼터뷰 액션게임 - Player 물리문제 고치기 / 벽 관통 방지 / 아이템 고정 (0) | 2022.04.23 |
유니티 3D 쿼터뷰 액션게임 - 원거리 공격 구현 / Instantiate() / Raycast / 마우스 방향으로 회전 (0) | 2022.04.23 |
유니티 3D 쿼터뷰 액션 게임 - 근접공격 구현하기 / Trail Renderer / 코루틴 (0) | 2022.04.22 |