1.원거리몬스터 Enemy C 오브젝트 생성
- Asset 프리팹 드래그 앤 드랍
- 컴포넌트 : 리지드바디, 박스콜라이더, 네비메쉬에이전트, Enemy스크립트
- tag 및 Layer : Enemy
- Enemy C의 Mesh와 관련된 자식오브젝트인 Mesh Object 컴포넌트로 EnemyC관련 애니메이터 추가
- Enemy C 애니메이터는 기존 Enemy B 애니메이터를 복사하여 안의 애니메이션만 바꿔주면 됨
2. 미사일 오브젝트 생성 및 프리팹화
- Asset 프리팹 드래그 앤 드랍
- 컴포넌트 : 리지드바디(UseGravity X), 박스콜라이더(isTrigger O), 파티클시스템, Bullet스크립트
- tag 및 Layer : EnemyBullet
- 미사일오브젝트의 Mesh와 관련된 자식오브젝트인 MeshObject컴포넌트로 Missile 스크립트를 추가
- Missile 스크립트에서는 미사일을 회전시키는 로직 구현
*파티클시스템에서 simulation Space를 기존 Local에서 World로 바꿔주어야 미사일이 회전할때 파티클이 회전하지 않음
3. 원거리몬스터가 미사일을 생성, 발사 하도록 코드 구현
- 원거리몬스터의 공격인식범위등 지정해주고 미사일발사 공격 코드 구현
4. 보완 및 디버깅
*원거리몬스터의 미사일공격을 플레이어가 맞으면 사라지게 하기
*원거리몬스터의 미사일공격이 벽에 맞으면 사라지게 하기
*몬스터 피격시 색깔 전부바꾸기
*원거리몬스터가 죽었는데 공격감지범위에 플레이어가 있으면 미사일을 쏘는 버그 디버깅하기
- 일반함수의 return과 같은 코루틴정지 -> yield break
*몬스터가 폭탄에 죽었는데 날라가지 않던 버그 디버깅
- 몬스터 OnDamaged()에서 RigidBody.isKinematic = true;로 하는 코드가 있었는데 이것을 없애버림
- 만약 넣을 거라면 폭탄에 의해 날라가는 시간을 벌어준 후 코루틴으로 RigidBody.isKinematic = true; 실행
*원거리 몬스터가 공격중일때 밀치면 충돌속도변화에 의해 미끄러지는 버그 디버깅
- 기존에는 충돌에의한 속도변화를 프리징하는 함수가 몬스터가 공격할시에는 풀리도록 되어 있었는데 이것은 돌격형 몬스터에게만 해당하도록 코드 구현
'Unity > Unity3D_Quater' 카테고리의 다른 글
Unity3D_Quater - 보스 공격 패턴 구현 (0) | 2021.03.09 |
---|---|
unity3D_Quater - 보스몬스터, 보스 미사일, 보스 바위공격 구현 (0) | 2021.03.07 |
Unity3D_Quter - 돌격형 몬스터 애니메이션 수정, 몬스터 반경범위 플레이어인식 AI추가 (0) | 2021.03.03 |
Unity3D_Quater - 돌격형 몬스터 구현 (0) | 2021.03.03 |
Unity3D_Quater - 플레이어의 피격, 몬스터A 공격 구현 (0) | 2021.03.02 |