공부/Unity

24.05.27

월러비 2024. 6. 9. 13:20
  • 공격시 콤보가 들어가는 문제를 해결하기 위해 공격 지연 코루틴을 테스트한다.
    • 지연을 2단계로 만들어서 하나는 데미지를 받았을때의 코루틴, 하나는 기본 랜덤 지연 코루틴으로 만든다.
      • 테스트 - 실패
    • 데미지 받았을때 코루틴을 기본상태로 강제로 돌린다.
      • 테스트 - 성공
  • Melee - DoAction, Begin_DoAction, End_DoAction 수정
  • AIController - 공격 지연 코루틴 및 OnEndDoAction 이벤트 수정

 

  • 공격이든 뭐든 Begin이 있다면 End도 있어야한다.
    • Begin_DoAction, End_DoAction
    • Begin_Collision, End_Collision
  • 캔슬
    • 공격 중 UI를 띄우면 공격 속도가 느려진다.
  • 나중에 하면 좋을것들
    • 집단전 시 플레이어 둘러싸기
    • 때린 적은 다시 집단으로 돌아가서 견제하며 움직인다.

AI 전체 정리

  • Enemy : 적을 출력하고 데미지를 받는 기능만 있다.
  • AIController → FixedUpdate
    1. player == null → Perception을 이용해서 플레이어 확인
      1. Wait → Patrol : patrol이 있으면 수행하고, 없으면 wait
        • 지금은 단순하게 순찰루트를 만들었지만 나중에는 엄청 복잡하게 만들어야 한다.
          • 플레이어들이 순찰 경로를 파악하게 되기 때문이다.
        • 거점 중심에서 순찰
        • 이동한 거점에서 순찰
        • 순찰 경로 지정
        • 일정 영역을 울타리(랜덤 포인트 한점)처럼 만들어서 그곳으로 이동하는 방법
    2. player ≠ null ⇒ 플레이어 발견
      1. Equip
        1. 장착 상태로 변경
        2. Equip 완료 될때까지 상태변경 금지
      2. Approach : 감지 및 추격
        1. 감지 조건 - 선별, 팀 ID(집단전 AI)
        2. 기존 감시 대상자 X → 감시 대상자 추가 (현재 시간 기록)
        3. 기존 감시 대상자 O → 감시 시간 갱신 (시간만 갱신)
        4. 시간 경과시(2.0f)
          1. 최종 감지시간 > 2초 → 제거
      3. Action 1.
  • 집단전때 ‘집단 A’가 ‘적1’을 쫒아가다 ‘집단 B’를 만난다면?
    1. 적 1을 계속 쫒아간다. - 기본 포폴은 이걸로 한다.
    2. 위협요소 우선순위를 만든다. (만난 적들의 남은 hp 같은 요들) - 나중에 포폴은 이걸로 업그레이드를 해야하고 회사 시험도 위협요소 우선순위 구현으로 나온다.

 

  • 구와 구의 충돌 : 두 반지름을 비교한다.
  • 가변형배열 문제
    • 한 자리에서 삭제하면 뒤에것이 땡겨진다.
      • 해결방법 :끝에서부터 하향식으로 삭제한다.
  • 또다른 피격이 온다면?
    • Damaged_Layer에서 뭘로 피격을 받느냐만 나눠주면 된다.

 

  • AIController_Sword 생성 : AIController 상속받는 AI 근접공격(검) 스크립트
  • AIController_FireBall 생성 : AIController 상속받는 AI 원거리공격(불꽃) 스크립트
  • AIController - 상속되는 함수들 수정 (Start, Update 등)
  • AI 적 FireBall 쓰는 오브젝트 프리펩 생성
  • 테블릿 화면을 노트북에 띄우는 프로그램 : SPR CPI 프로그램
  1. FIreBall 쓰는 적 씬에 올리고 반경 180도, 적 인식거리 10 주고 실행
    1. 테스트
  2. 적 계속 바라보게 하는 기능 수정
    1. 테스트

 

  • 플레이어 후방에서 간격(backDistance)만큼 벌려 일정 반경 안에서(backRange) 랜덤 워프할 틀 만들기 - 미완성
  • FireBall - AI만 사용하는 코드 추가 및 수정
  • Warp - AI만 사용하는 코드 추가 및 수정
  • AIController_FireBall - 수정 / 워프 후방 랜덤 워프 틀 만들기 - 미완성
  • 플레이어 전방을 반전해서 일정 거리(예. 5.0f)만큼 거리를 벌린 뒤 그 주변 반경으로 랜덤 출현

'공부 > Unity' 카테고리의 다른 글

24.05.30  (0) 2024.06.10
24.05.29  (1) 2024.06.10
24.05.24  (0) 2024.06.09
24.05.23  (0) 2024.06.09
24.05.22  (0) 2024.06.09