Unity3d 物件導向設計思想(五)(遊戲背包的處理ii)

來源:互聯網
上載者:User

續:

在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);
    }


這樣可以實現背包的載入,也是一個靜態顯示用的背包,可以添加顯示道具


:)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.