Game Studio
Liên kế mạng xã hội

Game Studio


[Project RPG] Hướng dẫn tạo các thông số vật lý cho nhân vật trong Unity


Để tạo được các thuộc tính vật lý hay các thông số vật lý cho nhân vật, các bạn phải khai báo các thuộc tính này thành các class khác nhau, bài viết này chủ yếu khởi tạo các thuộc tính cơ bản của người chơi như Tốc độ, Trí tuệ, Sức mạnh,... tất cả đều code bằng C# và chưa thể sử dụng được liền mà phải đợi sử dụng ở các bài viết sau.

 


B1. Nhấp phải vào thư mục Script ở thẻ Project rồi chọn Creat | Folder và đặt tên là Character Classes.


B2. Nhấp phải vào thư mục Character Classes rồi chọn Creat | C Sharp Script và đặt tên là BaseStat.

B3. Double Click vào file C# vừa tạo và chèn đoạn code sau vào:

 public class BaseStat {
    private int _baseValue;                //the base value of this stat
    private int _buffValue;                //the amount of the buff to this stat
    private int _expToLevel;            //the total amount of exp needed to raise this skill
    private float _levelModifier;            //the modifier applied to the exp needed to raise this skill

    public BaseStat(){
        _baseValue = 0;
        _buffValue = 0;
        _levelModifier = 1.1f;
        _expToLevel = 100;
    }

    #region Basic Setters and Getters
    //Basic Setters and Getters
    public int BaseValue{
        get{ return _baseValue;}
        set{ _baseValue = value;}

    }

    public int BuffValue{
        get{ return _buffValue;}
        set{ _buffValue = value;}
      
    }

    public int ExpToLevel{
        get{ return _expToLevel;}
        set{ _expToLevel = value;}
      
    }

    public float LevelModifier{
        get{ return _levelModifier;}
        set{ _levelModifier = value;}
      
    }
    #endregion

    private int CalculateExpToLevel(){
        return (int)(_expToLevel * _levelModifier);
    }

    public void LevelUp(){
        _expToLevel = CalculateExpToLevel();
        _baseValue++;
    }

    public int AdjustedBaseValue{
        get{ return _baseValue + _buffValue; }
    }
}


B4. Tạo thêm file C Sharp Script trong thư mục Character Classes và đặt tên là Attribute.

B5. Double Click vào file C# vừa tạo và chèn đoạn code sau vào:

public class Attribute : BaseStat {
    public Attribute(){
        ExpToLevel = 50;
        LevelModifier = 1.05f;
    }
}

public enum AttributeName{
    Might,
    Constituion,
    Nimbleness,
    Speed,
    Concentration,
    Willpower,
    Charisma
}


B6.  Tạo thêm file C Sharp Script trong thư mục Character Classes và đặt tên là ModifiedStat.

B7. Double Click vào file C# vừa tạo và chèn đoạn code sau vào:

 using System.Collections.Generic;

public class ModifiedStat : BaseStat {
    private List _mods;        //A listof Attribute that modify this stat
    private int _modValue;                        //The amount added to the baseValue from the modifiers

    public ModifiedStat(){
        _mods = new List();
        _modValue = 0;
    }

    public void AddModifier( ModifyingAttribute mod ){
        _mods.Add(mod);
    }

    private void CalculateModValue(){
        _modValue = 0;

        if(_mods.Count > 0)
            foreach(ModifyingAttribute att in _mods)
                _modValue += (int)(att.attribute.AdjustedBaseValue * att.ratio);
    }

    public new int AdjustedBaseValue{
        get{ return BaseValue + BuffValue + _modValue; }
    }

    public void Update(){
        CalculateModValue();
    }
}

public struct ModifyingAttribute{
    public Attribute attribute;
    public float ratio;

    public ModifyingAttribute(Attribute att, float rat){
        attribute = att;
        ratio = rat;
    }
}


B8. Tạo thêm file C Sharp Script trong thư mục Character Classes và đặt tên là Vital.

B9. Double Click vào file C# vừa tạo và chèn đoạn code sau vào:

public class Vital : ModifiedStat {
    private int _curValue;

    public Vital(){
        _curValue = 0;
        ExpToLevel = 50;
        LevelModifier = 1.1f;
    }

    public int CurValue{
        get{
            if(_curValue > AdjustedBaseValue)
                _curValue = AdjustedBaseValue;

            return _curValue;
        }
        set{ _curValue = value; }
    }
}

public enum VitalName{
    Health,
    Energy,
    Mana
}


B10. Tạo thêm file C Sharp Script trong thư mục Character Classes và đặt tên là Skill.

 


B11. Double Click vào file C# vừa tạo và chèn đoạn code sau vào:

 

 public class Skill : ModifiedStat {
    private bool _known;

    public Skill(){
        _known = false;
        ExpToLevel = 25;
        LevelModifier = 1.1f;
    }

    public bool Known{
        get{ return _known; }
        set{ _known = value; }
    }
}

public enum SkillName{
    Melee_Offence,
    Melee_Defence,
    Ranged_Offence,
    Ranged_Defence,
    Magic_Offence,
    Magic_Defence
}

Nguồn: vietunity3d