Chapter 13-3. 미니 RPG : 스탯

Date:     Updated:

카테고리:

태그:

인프런에 있는 Rookiss님의 [C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진 강의를 듣고 정리한 필기입니다. 😀
🌜 강의 들으러 가기 Click

Chapter 13. 미니 RPG 만들기

🚀 스탯

  • 📜Stat 👉 스탯을 가지는 모든 것들이 공통적으로 가지는 속성들
    • 📜PlayerStat 👉 Stat을 상속 받음. 플레이어의 스탯
      • 플레이어 오브젝트에 붙는다.
    • 📜MonsterStat 👉 Stat을 상속 받음. 몬스터의 스탯
      • 몬스터 오브젝트에 붙는다.

📜Stat

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Stat : MonoBehaviour
{
    // 멤버 변수
    [SerializeField]
    protected int _level;
    [SerializeField]
    protected int _hp;
    [SerializeField]
    protected int _maxHp;
    [SerializeField]
    protected int _attack;
    [SerializeField]
    protected int _defense;
    [SerializeField]
    protected float _moveSpeed;

    // 멤버 프로퍼티
    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 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; } }

    private void Start()
    {
        _level = 1;
        _hp = 100;
        _maxHp = 100;
        _attack = 10;
        _defense = 5;
        _moveSpeed = 5.0f;
    }
}

모든 스탯의 공통 요소 👉 레벨, 현재 HP, 최대 HP, 공격력, 방어력, 이동 속도


📜PlayerStat

플에이어인 unityChan 오브젝트에

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerStat : Stat
{
    [SerializeField]
	protected int _exp;
    [SerializeField]
	protected int _gold;

	public int Exp { get { return _exp; } set { _exp = value; } }
	public int Gold { get { return _gold; } set { _gold = value; } }

	private void Start()
	{
		_level = 1;
		_hp = 100;
		_maxHp = 100;
		_attack = 10;
		_defense = 5;
		_moveSpeed = 5.0f;
		_exp = 0;
		_gold = 0;
	}
}

Stat으로부터 상속 받은 것에 더해서 플레이어만의 스탯 👉 경험치, 돈


📜Define

public class Define
{
    public enum Layer
    {
        Monster = 8,
        Ground = 9,
        Block = 10,
    }


📜PlayerController

PlayerStat _stat;

	public enum PlayerState
	{
		Die,
		Moving,
		Idle,
		Skill,  // ✨추가! (치유 스킬, 공격 스킬 등등)
	}

	void Start()
    {
		_stat = gameObject.GetComponent<PlayerStat>();

		//...
	}

    void UpdateMoving()
    {
        //... 
		else
		{
			float moveDist = Mathf.Clamp(_stat.MoveSpeed * Time.deltaTime, 0, dir.magnitude);
    }


🌜 개인 공부 기록용 블로그입니다. 오류나 틀린 부분이 있을 경우 
언제든지 댓글 혹은 메일로 지적해주시면 감사하겠습니다! 😄

맨 위로 이동하기

Unity Lesson 2 카테고리 내 다른 글 보러가기

댓글 남기기