본문 바로가기

Unity/Unity3D_Quater

Unity3D_Quater - 원거리몬스터 구현, 기능보완 및 디버깅

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; 실행

 

 

*원거리 몬스터가 공격중일때 밀치면 충돌속도변화에 의해 미끄러지는 버그 디버깅

 - 기존에는 충돌에의한 속도변화를 프리징하는 함수가 몬스터가 공격할시에는 풀리도록 되어 있었는데 이것은 돌격형     몬스터에게만 해당하도록 코드 구현