前言
本文由作者@zx一路飛奔出品,轉載請註明出處
文章地址:http://blog.csdn.net/u014735301/article/details/43307651
作者微博:http://weibo.com/u/1847349851
總結下自己想的揹包系統的實現。先上圖看看效果
揹包系統
/*
人物揹包類
*/
public class BagData : MonoBehaviour {
//物品
[System.Serializable]
public class Bag
{
public ItemData.Item item; //物品
public int count; //物品數量
}
//人物裝備
[System.Serializable]
public class Equip
{
public ItemData.Item equip;
public bool equipOn;
}
public List<Bag> bag = new List<Bag>(); //揹包;
public Equip wuqi; //武器
public Equip maozi ;
public Equip yifu ;
public Equip xiezi ;
public Equip xianglian;
public Equip jiezhi ;
public int goldCount;
public static BagData instance;//單例
void Awake () {
instance = this;
}
void Update() {
for (int i = 0; i < bag.Count; i++)
{
if (bag[i].count == 0)
{
bag.Remove(bag[i]);
}
}
}
再看看 item類(物品類)
//物品類型
public enum ItemType{
//金幣,裝備,材料,消耗品,任務用品
gold, equipment, material, drug, task
}
//裝備類型
public enum EquipmentType{
//武器,衣服,帽子,鞋子,項鍊,戒指
wuqi,yifu,maozi,xiezi,xianglian,jiezhi
}
//物品
[System.Serializable]
public class Item {
public string name = "name";//名稱
public string id = "id"; //id
public ItemType itemType; //物品類型
[Multiline]
public string description = "Description Here";//描述
public Texture2D img; //圖片
public float range; //爆率
public int count; //數量
public EquipmentType equipmentType;//裝備類型
public int price; //價格(賣商店能賣幾個錢)
//對屬性的作用
public int hp, mp, atk, def;
public float criPercent, atkSpd, moveSpd;
}
基本類搞定了, 剩下的就是UI邏輯的問題,無非是item,傳來傳去,傳參數,就需要在物品欄格子,物品顯示面板,裝備格子上,掛上腳本,