인프런 커뮤니티 질문&답변

고우진님의 프로필 이미지
고우진

작성한 질문수

[유니티 레벨 업!] 모듈식으로 개발하는 스킬 시스템

Skill (5) - Skill StateMachine

uphandcast만 트리거를 쓰는건지 궁금합니다.

작성

·

39

0

// 인자로 받은 animatorParameter가 bool Type이면 owner의 StateMachine으로 인자로 받은 command를 보냄

// Transition이 Command를 받아들였으면, State로 UsingSKill Message와 Skill 정보를 보냄

if (animatorParameter.type == AnimatorParameterType.Bool && ownerStateMachine.ExecuteCommand(command))

ownerStateMachine.SendMessage(EntityStateMessage.UsingSkill, (skill, animatorParameter));

// 인자로 받은 animatorParameter가 trigger Type이면 행동에 제약을 주지 않을 것이므로 ToDefaultState Command를 보내고

// Transition이 받아들였는지와 상관없이, State로 UsingSkill Message와 skill 정보를 보냄

else if (animatorParameter.type == AnimatorParameterType.Trigger)

{

ownerStateMachine.ExecuteCommand(EntityStateCommand.ToDefaultState);

ownerStateMachine.SendMessage(EntityStateMessage.UsingSkill, (skill, animatorParameter));

}
왜 Uphandcast만 트리거 타입이 되는지와 행동에 제약을 받지않는건지 궁금합니다.

답변 2

0

Developer G님의 프로필 이미지
Developer G
지식공유자

수강해주셔서 감사합니다.

스크린샷 2024-09-28 sdad194833.png


upHandCast가 Trigger Type인건 해당 Animation을 쓰는 Skill에서 Trigger Type으로 설정해서 그렇구요, 혹시 왜 다른 Animation들은 Bool형으로 만들고 upHandCast만 Trigger 형태로 만들었는지 물어보시는거라면 예제를 보여드리기 위한 것일 뿐 다른 이유는 없습니다.
Code를 보면 Trigger Type일 경우 Entity가 DefaultState로 전이되기 때문에 DefaultState의 규칙을 따르므로 행동에 아무런 제약이 없습니다.

감사합니다.

고우진님의 프로필 이미지
고우진
질문자

행동의 제약이 없는거라면 리그오브 레전드의 소나QWE, 세라핀, QWE 잭스 E 정도가 될까요
이동하면서 사용을 하는 예시인데

Developer G님의 프로필 이미지
Developer G
지식공유자

소나와 신드라가 대표적이라고 볼 수 있겠습니다.

고우진님의 프로필 이미지
고우진
질문자

답변해주셔서 감사합니다

0

안녕하세요, 인프런 AI 인턴입니다. 고우진님.

Uphandcast와 트리거 타입에 대해 이해하는 데 도움을 드리기 위해 관련된 유사한 질문들을 소개하고 간단히 요약해 드리겠습니다.

관련 질문 URL:

  1. 적 스킬 관련 질문

    • 내용 요약: Projectile 스킬을 사용하는 적의 스킬 구현 방법과 적이 스킬을 사용할 때의 로직에 대한 논의입니다.
    • 이미지:
      image
    • 핵심 요점: 스킬의 다양한 요소를 모듈화하여 관리하는 방법을 상세히 설명합니다.
  2. SkillSystemWindow 스크립트 drawDatabase함수에서 null참조발생

    • 내용 요약: 이 문제는 스크립트 오류와 관련이 있으며, 스킬 시스템 내에서 발생하는 다양한 버그들을 해결하는 방법에 대해 논의합니다.

간단한 개요:

Uphandcast와 Trigger 타입의 차이:
1. Trigger Type: Trigger 타입의 파라미터는 특정 이벤트를 발생시키는 역할을 하며, 애니메이터 상태의 전환을 유도합니다. 예를 들어, 스킬을 사용하는 동작을 시작하거나 종료할 때 trigger 파라미터를 사용하여 애니메이션 전이를 관리할 수 있습니다.
2. Bool Type: Bool 타입의 파라미터는 true/false 값을 통해 애니메이터의 특정 상태를 유지하거나 종료할 때 사용됩니다. 예를 들어, 지속적인 공격 모드나 디버프 상태를 나타낼 때 유용합니다.

왜 Uphandcast만 트리거 타입을 사용하는지:
- 상황에 맞는 유연성: Trigger 타입은 행동에 제약을 주지 않고 특정 이벤트를 순간적으로 처리하는 데 사용되므로, 스킬 사용 후 바로 다른 상태로 전환이 용이합니다. 이는 스킬의 특성상 빠르게 다양한 행동을 해야 하는 경우 적합합니다.
- 행동의 제약 없음: Bool 타입은 특정 상태 유지를 요구하므로, 지속적으로 활성화/비활성화 상태를 관리해야 할 경우 사용됩니다. 반면, Trigger 타입은 특정 애니메이션을 재생시키고 종료 후 재리셋될 필요성이 있는 경우 주로 사용됩니다.

다시 말해, Uphandcast는 행동에 제약을 받지 않게 하기 위해 트리거 타입을 사용하며, 이는 스킬의 연속성을 위한 재사용성과 유연성을 높여줍니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

고우진님의 프로필 이미지
고우진

작성한 질문수

질문하기