feat: 채널링 빔 스킬 시스템 구현 및 PolygonParticleFX VFX 에셋 추가
- SkillData: 채널링 필드 추가 (지속시간, 틱 간격, 틱/종료 효과, VFX 프리팹, 마운트 경로, 크기 배율) - SkillController: 채널링 상태 관리 (Start/Update/End), VFX 생성/파괴, 틱 효과 주기 발동, 버튼 해제로 중단 - SkillEffect: Beam(원통) 범위 판정 추가 (OverlapCapsule), 디버그 시각화 - PlayerSkillInput: 스킬 취소(canceled) 이벤트 구독 → 채널링 중단 통지 - SkillLoadoutEntry: 채널링 틱/종료 효과 수집 메서드 추가 - 스킬 데이터/이펙트/애니메이션/VFX 에셋 추가 (채널링 스킬용) - PolygonParticleFX VFX 에셋 패키지 추가 (Materials, Models, Prefabs, Textures, Scenes)
This commit is contained in:
@@ -150,6 +150,12 @@ namespace Colosseum.Player
|
||||
inputActions.Player.Skill5.performed += OnSkill5Performed;
|
||||
inputActions.Player.Skill6.performed += OnSkill6Performed;
|
||||
inputActions.Player.Evade.performed += OnEvadePerformed;
|
||||
inputActions.Player.Skill1.canceled += OnSkill1Canceled;
|
||||
inputActions.Player.Skill2.canceled += OnSkill2Canceled;
|
||||
inputActions.Player.Skill3.canceled += OnSkill3Canceled;
|
||||
inputActions.Player.Skill4.canceled += OnSkill4Canceled;
|
||||
inputActions.Player.Skill5.canceled += OnSkill5Canceled;
|
||||
inputActions.Player.Skill6.canceled += OnSkill6Canceled;
|
||||
}
|
||||
|
||||
SetGameplayInputEnabled(true);
|
||||
@@ -377,6 +383,12 @@ namespace Colosseum.Player
|
||||
{
|
||||
if (inputActions != null)
|
||||
{
|
||||
inputActions.Player.Skill1.canceled -= OnSkill1Canceled;
|
||||
inputActions.Player.Skill2.canceled -= OnSkill2Canceled;
|
||||
inputActions.Player.Skill3.canceled -= OnSkill3Canceled;
|
||||
inputActions.Player.Skill4.canceled -= OnSkill4Canceled;
|
||||
inputActions.Player.Skill5.canceled -= OnSkill5Canceled;
|
||||
inputActions.Player.Skill6.canceled -= OnSkill6Canceled;
|
||||
inputActions.Player.Disable();
|
||||
}
|
||||
}
|
||||
@@ -852,6 +864,24 @@ namespace Colosseum.Player
|
||||
|
||||
private void OnEvadePerformed(InputAction.CallbackContext context) => OnSkillInput(6);
|
||||
|
||||
private void OnSkill1Canceled(InputAction.CallbackContext context) => OnSkillCanceled();
|
||||
private void OnSkill2Canceled(InputAction.CallbackContext context) => OnSkillCanceled();
|
||||
private void OnSkill3Canceled(InputAction.CallbackContext context) => OnSkillCanceled();
|
||||
private void OnSkill4Canceled(InputAction.CallbackContext context) => OnSkillCanceled();
|
||||
private void OnSkill5Canceled(InputAction.CallbackContext context) => OnSkillCanceled();
|
||||
private void OnSkill6Canceled(InputAction.CallbackContext context) => OnSkillCanceled();
|
||||
|
||||
/// <summary>
|
||||
/// 스킬 버튼 해제 시 채널링 중단을 알립니다.
|
||||
/// </summary>
|
||||
private void OnSkillCanceled()
|
||||
{
|
||||
if (skillController != null && skillController.IsChannelingActive)
|
||||
{
|
||||
skillController.NotifyChannelHoldReleased();
|
||||
}
|
||||
}
|
||||
|
||||
private PlayerActionState GetOrCreateActionState()
|
||||
{
|
||||
var foundState = GetComponent<PlayerActionState>();
|
||||
|
||||
Reference in New Issue
Block a user