57 lines
2.2 KiB
C#
57 lines
2.2 KiB
C#
|
|
using UnityEngine;
|
||
|
|
using UnityEngine.InputSystem;
|
||
|
|
using EerieVillage.Skills;
|
||
|
|
using EerieVillage.Skills.Effectors;
|
||
|
|
|
||
|
|
namespace EerieVillage.Skills.Test
|
||
|
|
{
|
||
|
|
/// <summary>
|
||
|
|
/// PD 지시 (2026-05-13) 테스트용 — 키보드 A 키 입력 시 지정 ActiveSkill 즉시 발사.
|
||
|
|
/// Player GameObject 에 부착. PlayerSkillInventory 도 같은 GameObject 또는 자식에 존재해야 함.
|
||
|
|
/// </summary>
|
||
|
|
[RequireComponent(typeof(PlayerSkillInventory))]
|
||
|
|
public class TestSkillFireOnA : MonoBehaviour
|
||
|
|
{
|
||
|
|
[Tooltip("발사 대상 ActiveSkillData (Resources/Skills/Active/A02_paieobol 기본)")]
|
||
|
|
public ActiveSkillData SkillData;
|
||
|
|
|
||
|
|
[Tooltip("Resources fallback 경로 (SkillData 인스펙터 부재 시 사용)")]
|
||
|
|
public string FallbackResourcePath = "Skills/Active/A02_paieobol";
|
||
|
|
|
||
|
|
PlayerSkillInventory _inventory;
|
||
|
|
ActiveSkillRuntime _runtime;
|
||
|
|
readonly ProjectileSpawner _projSpawner = new ProjectileSpawner();
|
||
|
|
readonly LightningStrikeSpawner _meleeSpawner = new LightningStrikeSpawner();
|
||
|
|
|
||
|
|
void Awake()
|
||
|
|
{
|
||
|
|
_inventory = GetComponent<PlayerSkillInventory>();
|
||
|
|
if (SkillData == null)
|
||
|
|
SkillData = Resources.Load<ActiveSkillData>(FallbackResourcePath);
|
||
|
|
|
||
|
|
if (SkillData != null)
|
||
|
|
{
|
||
|
|
_runtime = new ActiveSkillRuntime(SkillData);
|
||
|
|
_runtime.OnEquip(_inventory);
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
Debug.LogWarning($"[TestSkillFireOnA] SkillData NULL — {FallbackResourcePath} 영역 로드 실패");
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
void Update()
|
||
|
|
{
|
||
|
|
if (_runtime == null || _inventory == null) return;
|
||
|
|
if (Keyboard.current == null) return;
|
||
|
|
if (!Keyboard.current.aKey.wasPressedThisFrame) return;
|
||
|
|
|
||
|
|
// 카테고리별 발동기 — Projectile · MeleeArea (A04 번개 충격) 지원
|
||
|
|
if (SkillData.Category == ActiveCategory.Projectile)
|
||
|
|
_projSpawner.Trigger(_runtime, _inventory);
|
||
|
|
else if (SkillData.Category == ActiveCategory.MeleeArea)
|
||
|
|
_meleeSpawner.Trigger(_runtime, _inventory);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|