Character Stats
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public enum StatsChangeType // 특성 변경을 위한 열거형 (더하기, 곱하기, 덮어쓰기)
{
Add,
Multiple,
Override,
}
[Serializable]
public class CharacterStats
{
public StatsChangeType statsChangeType;
[Range(1, 100)] public int maxHealth; //정수형 1~100까지 체력
[Range(1f, 20f)] public float speed; // 부동소수점 1~20
public AttackSO attackSO; // 타입의 변수로, 어떤 종류의 공격을 나타내는 스크립트 또는 오브젝트를 참조합니다.
}
StatsChangeType 열거형: 특성 변경의 타입을 나타내기 위한 열거형입니다. 가능한 값으로는 Add (더하기), Multiple (곱하기), Override (덮어쓰기)가 있습니다.
CharacterStats 클래스: 캐릭터의 특성을 나타내는 클래스입니다. 각 특성은 다음과 같은 속성들을 가지고 있습니다:
statsChangeType: 특성 변경의 타입을 나타내는 열거형입니다.
maxHealth: 최대 체력을 나타내는 정수로, 범위는 1에서 100까지입니다.
speed: 이동 속도를 나타내는 부동 소수점으로, 범위는 1에서 20까지입니다.
attackSO: AttackSO 타입의 변수로, 어떤 종류의 공격을 나타내는 스크립트 또는 오브젝트를 참조합니다.
Attack SO
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[CreateAssetMenu(fileName ="DefaultAttackData", menuName ="TopDownController/Attacks/Default", order = 0)]
public class AttackSO : ScriptableObject
{
[Header("Attack Info")]
public float size;
public float delay;
public float power;
public float speed;
public LayerMask target;
[Header("Knock Back Info")]
public bool isOnKnockback;
public float knockbackPower;
public float knockbackTime;
}
Unity 게임 엔진에서 사용되는 스크립트 객체(ScriptableObject)인 AttackSO 클래스를 정의하고 있습니다.
이 클래스는 공격에 대한 정보를 담고 있으며, CreateAssetMenu 속성을 사용하여 Unity 에디터 상에서 생성할 때의 메뉴와 파일 이름을 설정합니다.
size: 공격의 크기를 나타내는 부동 소수점 값
delay: 공격의 딜레이를 나타내는 부동 소수점 값
power: 공격의 힘을 나타내는 부동 소수점 값
speed: 공격의 속도를 나타내는 부동 소수점 값
target: 레이어 마스크(LayerMask)로, 어떤 종류의 오브젝트가 이 공격의 대상이 될 수 있는지를 나타냅니다.
isOnKnockback: 공격이 대상을 넉백시키는지 여부를 나타내는 bool 값입니다.
knockbackPower: 넉백의 세기를 나타내는 부동 소수점 값으로, 대상을 얼마나 멀리 넉백시킬지 결정합니다.
knockbackTime: 넉백이 지속되는 시간을 나타내는 부동 소수점 값으로, 대상이 넉백 상태를 유지하는 시간을 결정합니다.
이 클래스는 Unity 에디터에서 CreateAssetMenu 특성을 사용하여 생성될 때 사용할 기본 설정을 정의하고 있습니다.
예를 들어, 파일 이름은 "DefaultAttackData"로 설정되며, 에디터 상에서 메뉴 경로는 "TopDownController/Attacks/Default"이고, 생성 순서는 0으로 설정됩니다.