Unity3D使用NGUI實現簡單揹包功能

2022-04-09 17:58:28 字數 1314 閱讀 1947

在許多態別遊戲中我們經常會使用到揹包,利用揹包來設定相應角色屬性,多了揹包也會讓遊戲增色拓展不少。

那在unity3d遊戲開發中該如何編寫揹包系統呢?因為有高人開發了ngui外掛程式,因此我們進行簡單編寫**設定即可實現乙個簡單的揹包功能了。

新建乙個工程packagedemo

匯入ngui包(最新版3.9.8版的正版89刀)

準備好素材,使用ngui將其打包成圖集

揹包

揹包格仔

物品 專案目錄以及場景列表如下:

要注意的是:

新增在指令碼使package可以被拖拽移動。

直接在obj的屬性面板add component新增指令碼 mydraganddrop.cs

令mydraganddrop繼承uidragdropitem

重寫ondragdroprelease方法

更改後的mydraganddrop指令碼**如下:

到這裡簡單例子也就完成了。

可以看到,到我拖拽obj在每個cell的邊緣時,obj都會自動移至碰撞的cell內,類似吸附功能。

上面的簡單例子實現了物體被揹包吸附裝入的功能,通過檢測cell的子物體增加相應邏輯就可以實現揹包和角色屬性關聯。

給所有物品設定tag為 「obj」 ,如果物品拖拽釋放時碰撞獲取的物件tag為「obj」,就設定交換物品的父級物件。

一般撿取得物品到揹包其排序都是從左到右,從上到下填入空的物品欄中。

實現方式是將所有物品欄物件裝載到gameobject的陣列中。

通過迴圈判斷物品欄是否有子物件,也就是判斷物品欄的子列表數值是否大於0

若小於或等於0,就將物品的父物件設定為該物品欄,然後設定其相對父物件座標為0

Unity 3D學習 NGUI中Tab的實現

個人覺得很簡單實用,所以分享給大家 1 建立乙個sprite 假設加taba 新增元件 ui toggle 然後在taba中建立兩個子物體,乙個是label作為顯示文字,另乙個同樣是sprite 假設叫highlightsprite 設定它的 sprite 屬性 就是資源 最後將其拖到taba的 u...

Unity3D外掛程式 NGUI螢幕自適應

ngui可以比較方便的實現螢幕自適應,但是它的官方教程裡面針對這個問題沒有詳細的教程,所以可能在實現的時候會走比較多的彎路。以下是我在開發過程中找到的乙個比較方便的實現方法。1.uianchor 這個是用來確定控制項在螢幕中的位置,另外有一篇教程專門講它的功能,所有不會再贅述 2.uistretch...

unity3D遊戲開發十七之NGUI四

接下來我們講解下uigrid,uigrid是用來輕鬆的排列眾多widget到固定大小格仔的指令碼。編輯時和執行時都可以使用。如果想使用可變的格仔單元大小,你可以使用uitable,屬性如下圖 arrangement的值決定了子節點的擺放位置。horizonta讓子節點向右排列,vertical向下排...