- 공격시 콤보가 들어가는 문제를 해결하기 위해 공격 지연 코루틴을 테스트한다.
- 지연을 2단계로 만들어서 하나는 데미지를 받았을때의 코루틴, 하나는 기본 랜덤 지연 코루틴으로 만든다.
- 데미지 받았을때 코루틴을 기본상태로 강제로 돌린다.
- Melee - DoAction, Begin_DoAction, End_DoAction 수정
- AIController - 공격 지연 코루틴 및 OnEndDoAction 이벤트 수정
- 공격이든 뭐든 Begin이 있다면 End도 있어야한다.
- Begin_DoAction, End_DoAction
- Begin_Collision, End_Collision
- 캔슬
- 공격 중 UI를 띄우면 공격 속도가 느려진다.
- 나중에 하면 좋을것들
- 집단전 시 플레이어 둘러싸기
- 때린 적은 다시 집단으로 돌아가서 견제하며 움직인다.
AI 전체 정리
- Enemy : 적을 출력하고 데미지를 받는 기능만 있다.
- AIController → FixedUpdate
- player == null → Perception을 이용해서 플레이어 확인
- Wait → Patrol : patrol이 있으면 수행하고, 없으면 wait
- 지금은 단순하게 순찰루트를 만들었지만 나중에는 엄청 복잡하게 만들어야 한다.
- 플레이어들이 순찰 경로를 파악하게 되기 때문이다.
- 거점 중심에서 순찰
- 이동한 거점에서 순찰
- 순찰 경로 지정
- 일정 영역을 울타리(랜덤 포인트 한점)처럼 만들어서 그곳으로 이동하는 방법
- player ≠ null ⇒ 플레이어 발견
- Equip
- 장착 상태로 변경
- Equip 완료 될때까지 상태변경 금지
- Approach : 감지 및 추격
- 감지 조건 - 선별, 팀 ID(집단전 AI)
- 기존 감시 대상자 X → 감시 대상자 추가 (현재 시간 기록)
- 기존 감시 대상자 O → 감시 시간 갱신 (시간만 갱신)
- 시간 경과시(2.0f)
- 최종 감지시간 > 2초 → 제거
- Action 1.
- 집단전때 ‘집단 A’가 ‘적1’을 쫒아가다 ‘집단 B’를 만난다면?
- 적 1을 계속 쫒아간다. - 기본 포폴은 이걸로 한다.
- 위협요소 우선순위를 만든다. (만난 적들의 남은 hp 같은 요들) - 나중에 포폴은 이걸로 업그레이드를 해야하고 회사 시험도 위협요소 우선순위 구현으로 나온다.
- 구와 구의 충돌 : 두 반지름을 비교한다.
- 가변형배열 문제
- 또다른 피격이 온다면?
- Damaged_Layer에서 뭘로 피격을 받느냐만 나눠주면 된다.
- AIController_Sword 생성 : AIController 상속받는 AI 근접공격(검) 스크립트
- AIController_FireBall 생성 : AIController 상속받는 AI 원거리공격(불꽃) 스크립트
- AIController - 상속되는 함수들 수정 (Start, Update 등)
- AI 적 FireBall 쓰는 오브젝트 프리펩 생성
- 테블릿 화면을 노트북에 띄우는 프로그램 : SPR CPI 프로그램
- FIreBall 쓰는 적 씬에 올리고 반경 180도, 적 인식거리 10 주고 실행
- 테스트
- 적 계속 바라보게 하는 기능 수정
- 테스트
- 플레이어 후방에서 간격(backDistance)만큼 벌려 일정 반경 안에서(backRange) 랜덤 워프할 틀 만들기 - 미완성
- FireBall - AI만 사용하는 코드 추가 및 수정
- Warp - AI만 사용하는 코드 추가 및 수정
- AIController_FireBall - 수정 / 워프 후방 랜덤 워프 틀 만들기 - 미완성
- 플레이어 전방을 반전해서 일정 거리(예. 5.0f)만큼 거리를 벌린 뒤 그 주변 반경으로 랜덤 출현