Files
Genesis_Unity/Assets/02_Scripts/Skill/Data/SkillData.cs

55 lines
1.4 KiB
C#

using UnityEngine;
/*
사용법:
Project에서 Create → Skill/SkillData로 스킬 에셋 생성, 레벨별 수치 입력
Create → Skill/WeaponSkillSet로 무기별 스킬 묶음 생성
플레이어에 SkillManager + Effect 컴포넌트들 부착
무기 변경 시 LoadWeaponSkills(skillSet) 호출
입력 시 SkillInput(slotIndex, inputState) 호출
*/
[CreateAssetMenu(menuName = "Skill/SkillData")]
public class SkillData : ScriptableObject
{
[Header("기본 정보")]
public string SkillName;
[TextArea] public string Description;
public Sprite Icon;
[Header("스킬 분류")]
public SkillType SkillType;
public ActivationType ActivationType;
public TargetType TargetType;
[Header("애니메이션")]
public string AnimTrigger;
[Header("이펙트")]
public GameObject EffectPrefab;
[Header("레벨별 수치")]
public SkillLevelData[] Levels;
public SkillLevelData GetLevelData(int level)
{
int idx = Mathf.Clamp(level - 1, 0, Levels.Length - 1);
return Levels[idx];
}
}
[System.Serializable]
public class SkillLevelData
{
public float Damage;
public float Range;
public float Cooldown;
public float ManaCost;
public float Duration;
public float ChargeTimeMax;
}
public enum SkillType { Active, Passive }
public enum ActivationType { Instant, Charge }
public enum TargetType { Self, Single, Area, Projectile }