공격 애니메이션 구현 분석

  1. 스페이스바 입력 설정 (InputAction Attack):

    • Action Mappings:
      • "Attack"이라는 액션을 정의하고, Space Bar에 매핑함.
      • Action Mappings는 특정 키 입력을 하나의 이벤트로 연결하여 사용하기 쉽게 만들어줌.
    • 이점:
      • 키보드나 컨트롤러 등 다양한 입력 방식에서 동일한 액션을 트리거할 수 있음.
  2. 공격 상태 저장 (Boolean 변수):

    • Attack이라는 불리언 변수를 추가하여 공격 중인지 여부를 저장.
    • 공격 상태가 시작되면 AttackTrue로 설정, 끝나면 False로 되돌림.
  3. 공격 애니메이션 시작 및 상태 관리:

    • Pressed 이벤트 연결:
      • 스페이스바가 눌리면 Attack 변수를 True로 설정.
      • Update Animation 함수 호출로 애니메이션 업데이트.
  4. 애니메이션 소요 시간 계산 (Get Flipbook Length):

    • Get Flipbook Length 노드를 사용하여 현재 재생 중인 플립북 애니메이션의 길이를 반환.
    • 의미:
      • 애니메이션의 정확한 재생 시간을 기반으로 Delay를 설정할 수 있음.
      • 이는 애니메이션이 끝난 시점에 적절히 Attack 상태를 False로 변경할 수 있도록 보장.
  5. Delay 노드로 공격 상태 유지:

    • 애니메이션의 길이만큼 Delay를 설정.
    • Delay가 완료된 후 Attack 변수를 False로 다시 설정.
    • 결과:
      • 공격 애니메이션이 끝나기 전까지 다시 공격이 시작되지 않도록 방지.
  6. 최종 연결:

    • InputAction Attack 이벤트에서 Pressed 이벤트가 발생할 때마다 위의 로직이 순차적으로 실행됨.
    • 애니메이션의 재생 시간을 기반으로 정확히 한 번만 실행되도록 설계.

추가 고려사항

  • 효율성 개선:
    • 키 입력과 상태 전환 로직을 별도의 함수로 묶어 관리.
    • 여러 공격 애니메이션이 있을 경우, 조건문이나 Enum으로 애니메이션을 선택하는 추가 로직을 구현 가능.
  • 플립북 애니메이션 동기화:
    • 적의 반응이나 추가 상태 변화와 동기화를 고려할 수 있음.

profile
李家네_공부방

0개의 댓글