using UnityEngine; using UnityEngine.InputSystem; using EerieVillage.Skills; using EerieVillage.Skills.Effectors; namespace EerieVillage.Skills.Test { /// /// PD 지시 (2026-05-13) 테스트용 — 키보드 A 키 입력 시 지정 ActiveSkill 즉시 발사. /// Player GameObject 에 부착. PlayerSkillInventory 도 같은 GameObject 또는 자식에 존재해야 함. /// [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(); if (SkillData == null) SkillData = Resources.Load(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); } } }