feat: 보스 점프 스킬 - 타겟 위치로 이동 구현

- SkillData에 jumpToTarget, animationSpeed 필드 추가
- 점프 중 XZ를 타겟 위치로 lerp, 착지 시 스냅
- endClip 재생 중 점프 이동 비활성화 (IsInEndAnimation)
- 보스/플레이어 겹침 시 플레이어를 밀어내는 방식으로 분리 처리
- 점프준비/점프/착지 3단계 스킬 & 패턴 구성
- UsePatternAction에 Target 블랙보드 변수 추가

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-18 18:05:41 +09:00
parent a9aa3a3091
commit 290d59e665
15 changed files with 711 additions and 391 deletions

View File

@@ -15,6 +15,7 @@ using Action = Unity.Behavior.Action;
public partial class UsePatternAction : Action
{
[SerializeReference] public BlackboardVariable<BossPatternData> Pattern;
[SerializeReference] public BlackboardVariable<GameObject> Target;
private SkillController skillController;
private int currentStepIndex;
@@ -112,6 +113,15 @@ public partial class UsePatternAction : Action
return Status.Failure;
}
// jumpToTarget 스킬이면 타겟 위치 전달
if (step.Skill.JumpToTarget)
{
if (Target?.Value == null)
Debug.LogWarning($"[UsePatternAction] '{step.Skill.SkillName}'은 JumpToTarget 스킬이지만 Target이 바인딩되지 않았습니다.");
else
GameObject.GetComponent<Colosseum.Enemy.EnemyBase>()?.SetJumpTarget(Target.Value.transform.position);
}
return Status.Running;
}
}

View File

@@ -14,6 +14,7 @@ using Unity.Properties;
public partial class UseSkillAction : Action
{
[SerializeReference] public BlackboardVariable<SkillData> ;
[SerializeReference] public BlackboardVariable<GameObject> Target;
private SkillController skillController;
@@ -42,6 +43,13 @@ public partial class UseSkillAction : Action
return Status.Failure;
}
// jumpToTarget 스킬이면 타겟 위치 전달
if (.Value.JumpToTarget && Target?.Value != null)
{
var enemyBase = GameObject.GetComponent<Colosseum.Enemy.EnemyBase>();
enemyBase?.SetJumpTarget(Target.Value.transform.position);
}
return Status.Running;
}