1. 플레이어 피격
- 플레이어가 enemyBullet 오브젝트와 OnTriggerEnter가 되면 OnDamged() 함수 실행(+실행조건 : isDamaged = false)
OnDamaged(){
- 노란색으로 바뀌고(GetComponentsInChildern<meshRenderer>();)
- isDamaged = true
- 총알 스크립트의 데미지를 가져와서 플레이어의 체력을 깍음
- 1초 후(코루틴으로 함수 구현)
- 다시 원래색으로 돌아옴 + isDamaged = false
}
2.몬스터 공격
- 몬스터 공격 범위가 될 BoxCollider 생성 - > Tag, Layer = EnemyBullet
- 몬스터 오브젝트 안에 자식으로 넣어주고 위치 조정
- 몬스터가 플레이어를 추적하다가 플레이어와 일정 거리가 되면 - > physics.ShpereCastAll사용
- ShpereCastAll에 플에이어가 적중되고 + 현재 몬스터가 공격중이 아니면 -> 몬스터공격 코루틴 실행
{
- 몬스터가 멈추고 -> isTrack = false;
- 몬스터 공격중활성화, 애니메이션 실행 - > isAttack = true; , anim.setBool("isAttack", true);
- 0.3초 후
BoxCollider가 활성화 됨 - > BoxCollider.enabled = true;
- 0.8초 후
BoxCollider가 비활성화 됨 -> BoxCollider.enabled= false;
- 1초 후
다시 플레이어를 따라가거나 범위안에 그대로 있다면 다시 공격 코루틴 시작 -> isTrack = true;
isAttack = false; , anim.setBool("isAttack", false);
}
1. 플레이어 피격
- OntriggerEnter에서 EnemyBullet과 트리거 되었을 경우 추가
*GetComponentsInChildern 와 GetComponentInChildern 차이를 숙지하자 s가 붙으면 자식오브젝트 모두를 가져옴
s가 없으면 첫번째 자식오브젝트만 가져옴
*요 네모난 콜라이더를 가진 오브젝트가 EnemyBullet
2. Bullet 스크립트 수정
- Bullet 스크립트에서 enum Tpye 을 추가하여 플레이어총알과, 적총알 2개로 나뉘게 만듬
기존 로직은 플레이어 총알인 경우에만 해당하도록 로직조건 추가
3. Enemy 공격 스크립트 구현
*SphereCastAll 참조 - > wergia.tistory.com/102
[Unity3D] BoxCast, SphereCast, CapsuleCast 제대로 사용하기
BoxCast, SphereCast, CapsuleCast 제대로 사용하기 지난 Physics 섹션에서는 매 프레임 콜라이더 충돌을 검출하지 않고 원하는 순간에만 콜라이더를 검출해낼 수 있는 Cast 계열의 함수들에 대해서 알아보
wergia.tistory.com
'Unity > Unity3D_Quater' 카테고리의 다른 글
Unity3D_Quter - 돌격형 몬스터 애니메이션 수정, 몬스터 반경범위 플레이어인식 AI추가 (0) | 2021.03.03 |
---|---|
Unity3D_Quater - 돌격형 몬스터 구현 (0) | 2021.03.03 |
Unity3D_Quater - 몬스터 AI 만들기 (0) | 2021.03.02 |
Unity3D_Quater - 캐릭터 폭탄투척, 폭탄 이펙트, 적 폭탄피격 구현 (0) | 2021.02.24 |
Unity3D_Quater - 피격 테스터 만들기 (0) | 2021.02.22 |