續:
在Unity3d中,遊戲中背包的處理個人的思想是,背包的每個格子都是可點擊的對象,可把單個格子做成一個
prefabs,然後在遊戲中添加,而每個格子都有邏輯判定,是否有道具在當前格子內,當前格子是否為空白
我的做法不是動態產生對象,而是靜態一個個手動載入背包對象,然後給每個背包命名。這樣可以在當前背包格子
內載入了對象後將當前格子物件的名字分發出去
當前背包的ICOn只是一個已經調整好位置的空UISprite
a.定義一個對象組,存放所有的ICON對象
b.然後挨個載入當前背包需要顯示的背景圖片
void SetIcon (int i) {
if(obj[i])
NGUITools.AddSprite(obj[i], atlax, "Orc Armor - Shoulders");
if( !string.IsNullOrEmpty( obj[i].GetComponent<UISprite> ().spriteName) ) {
NGUITools.Broadcast("OnDetailsResult", "rc"+i);
} else {
// reload
}
}
c.使用NGUI的工具類動態載入圖片對象到ICON的UISprite上
d.然後廣播事件出去做邏輯處理
void OnDetailsResult (string rc) {
BetterList<string> entrtys = new BetterList<string> ();
if(!string.IsNullOrEmpty(rc)) {
entrtys.Add(rc);
// if(entrtys.size >0)
// TiledController.index = entrtys.size;
}
TiledController.index ++;
print("size" + entrtys.size);
}
這樣可以實現背包的載入,也是一個靜態顯示用的背包,可以添加顯示道具
:)