1. UI 버튼 작업 했음 2. 칼, 방패 따로 붙이는 작업 헀음 3. 공격 모션에 이제 버튼 연동함 Todo 1. 공격시 화면 이상하게 흔들리는거 수정할 차례 2. 히트 박스 해서 몬스터 공격하는거 연동하기
126 lines
3.3 KiB
C#
126 lines
3.3 KiB
C#
using System;
|
|
using UnityEngine;
|
|
|
|
public abstract class Status : MonoBehaviour
|
|
{
|
|
// 자식 클래스가 반드시 구현해야 할 프로퍼티(속성)들입니다.
|
|
public abstract int Level { get; }
|
|
public abstract int Hp { get; }
|
|
public abstract int MaxHp { get; }
|
|
public abstract int Mp { get; }
|
|
public abstract int MaxMp { get; }
|
|
public abstract float Attack { get; }
|
|
public abstract float Defense { get; }
|
|
public abstract float MoveSpeed { get; }
|
|
public abstract float AtkSpeed { get; }
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*public class Status : MonoBehaviour
|
|
{
|
|
[SerializeField]
|
|
protected Data_Status _data;
|
|
public virtual Data_Status Data
|
|
{
|
|
get { return _data; }
|
|
set { _data = value; Init(); }
|
|
}
|
|
|
|
protected int _hp;
|
|
protected int _mp;
|
|
public int Hp { get {return _hp;} set {_hp = value;} }
|
|
public int Mp { get {return _mp;} set {_mp = value;} }
|
|
|
|
public int Level => _data != null ? _data.level : 1;
|
|
public int MaxHp => _data != null ? _data.maxHp : 100;
|
|
public int MaxMp => _data != null ? _data.maxMp : 100;
|
|
public float Attack => _data != null ? _data.attack : 10f;
|
|
public float Defense => _data != null ? _data.defense : 5f;
|
|
public float MoveSpeed => _data != null ? _data.moveSpeed : 3f;
|
|
public float AtkSpeed => _data != null ? _data.atkSpeed : 1f;
|
|
|
|
|
|
protected virtual void OnValidate()
|
|
{
|
|
if (_data != null) Init();
|
|
}
|
|
|
|
public virtual void Init()
|
|
{
|
|
Hp = MaxHp;
|
|
Mp = MaxMp;
|
|
}
|
|
|
|
}
|
|
/*
|
|
[SerializeField]
|
|
protected int _level;
|
|
|
|
[SerializeField]
|
|
protected int _hp;
|
|
[SerializeField]
|
|
protected int _maxHp;
|
|
[SerializeField]
|
|
protected int _mp;
|
|
[SerializeField]
|
|
protected int _maxMp;
|
|
|
|
[SerializeField]
|
|
protected int _attack;
|
|
[SerializeField]
|
|
protected int _defense;
|
|
|
|
[SerializeField]
|
|
protected float _moveSpeed;
|
|
[SerializeField]
|
|
protected float _atkSpeed;
|
|
|
|
public int Level { get { return _level; } set { _level = value; } }
|
|
|
|
public int Hp { get { return _hp; } set { _hp = value; } }
|
|
public int MaxHp { get { return _maxHp; } set { _maxHp = value; } }
|
|
public int Mp { get { return _mp; } set { _mp = value; } }
|
|
public int MaxMp { get { return _maxMp; } set { _maxMp = value; } }
|
|
|
|
public int Attack { get { return _attack; } set { _attack = value; } }
|
|
public int Defense { get { return _defense; } set { _defense = value; } }
|
|
|
|
public float MoveSpeed { get { return _moveSpeed; } set { _moveSpeed = value; } }
|
|
public float AtkSpeed { get { return _atkSpeed; } set { _atkSpeed = value; } }
|
|
|
|
public virtual void Init(Status status)
|
|
{
|
|
Level = status.Level;
|
|
Hp = status.Hp;
|
|
MaxHp = status.MaxHp;
|
|
Mp = status.Mp;
|
|
MaxMp = status.MaxMp;
|
|
Attack = status.Attack;
|
|
Defense = status.Defense;
|
|
MoveSpeed = status.MoveSpeed;
|
|
AtkSpeed = status.AtkSpeed;
|
|
|
|
}
|
|
|
|
public virtual void CopyFrom(Status source)
|
|
{
|
|
Level = source.Level;
|
|
Hp = source.Hp;
|
|
MaxHp = source.MaxHp;
|
|
Mp = source.Mp;
|
|
MaxMp = source.MaxMp;
|
|
Attack = source.Attack;
|
|
Defense = source.Defense;
|
|
MoveSpeed = source.MoveSpeed;
|
|
AtkSpeed = source.AtkSpeed;
|
|
}
|
|
}
|
|
*/
|