unity3D遊戲開發十七之NGUI四

2021-07-24 12:59:21 字數 2478 閱讀 9271

接下來我們講解下uigrid,uigrid是用來輕鬆的排列眾多widget到固定大小格仔的指令碼。 編輯時和執行時都可以使用。如果想使用可變的格仔單元大小,你可以使用uitable,屬性如下圖:

arrangement的值決定了子節點的擺放位置。horizonta讓子節點向右排列,vertical向下排列。

max per line屬性控制

horizontal排列時候的最大有多少列, vertical排列的時候最大有多少行。

cell width和

height決定了所有條目的間隔。

預設情況下grid重新調整所有的子節點的位置,子節點的排序是以建立時候的順序為準。如果想要指定排列順序,就把子節點的名字用字母排序的方式命名 (「001」, 「002」,「003」等),之後勾選

sorted

。這樣做就會讓grid在重新排列之前先按名字進行排序。 

最後,如果你想給看不到的子節點留下位置,勾選掉

hide inactive

。預設是勾選上的,所有看不到的子節點在排列時會被忽略。

我們在gird下新建4個button,然後設定排序方式,效果如下圖:

接下來我們了解下uiscrollview,滾動檢視,屬性如下:

movement:移動方向

drag effect:內容拖動時候顯示的效果

scroll wheel factor:使用滑鼠進行滾動時,滾動時候的比例

momentum amount:快速滑動時產生的衝力

restrict within panel:在面板裡進行約束

cancel drag if fits:如果有元件適應了面板的大小,取消元件在面板裡的拖動

smooth drag start:平滑拖動

ios drag emulation:在蘋果上**滑動效果

scroll bars:在進行拖動時,可以加入乙個scroll bars來控制或者顯示進度

下面我們具體來做乙個scrolview,我用的ngui版本是3.5.4,我們先看下最後的效果,如下圖:

先建立乙個2d ui,再建立乙個scrollview,在scrollview下建立乙個uigird,在gird下建立乙個空物件,空物件下再建立一些label,sprite等,整個結構如下圖:

注意每個item都需要新增ngui->attach->collider,碰撞體,還要新增ngui->interaction->drag scroll view,

我們接下來看下uitable,uitable 是乙個輔助指令碼,讓你容易將widgets排放到不同大小的格仔中。假如你熟悉html的tables,兩者是十分類似的。它可以在編輯階段以及執行階段來使用。假如你像要固定大小的格仔,可以考慮使用更有效率的uigrid

作為代替。屬性如下圖:

要使用uitable,首先選擇乙個panel,在scene view的任何地方點選右鍵,然後在create menu中選擇table 。你也可以簡單的將uitable 元件附加到任何乙個空遊戲物件上,以達到相同效果。

table 總是會先向右延伸,columns 屬性的值控制在table中多少行後會開始新的一列。新的一列可以往上或往下,取決於direction屬性

預設情況下,table 會重新定位所有的子物件,而排列的順序是物件被建立的順序。假如你想要改變這點,並且以特定的順序排列,你可以按字母排序的重新命名(("001", "002", "003", 等等),並且選取sorted屬性。這樣做可以讓table調整位置前先排序子物件的順序。

最後,假如你想要保留看不見的子物件留下來的空格,將hide inactive關閉。預設情況下這個選項是開啟的,所以不可見的物件是直接被忽略的。

你可以藉由修改padding屬性來增加格仔間的間隔。

注意每個子物件定位點(pivot point)的問題。假如所有table的子物件都是 center-based的定位點,它們會在table的中間出現。假如子物件的定位點是top-left,它們會在table格中的左上角出現,以此類推。最好是讓格仔中的物件都有相同的定位點。

效果如下圖:

Unity3D遊戲開發

入門級unity安裝教程 一 unity五大面板 unity3d的介紹 1 介面 選單 面板 元件 unity5.x 編輯器介紹 unity開啟篇 一 滑鼠右鍵 wsadeq前後左右上下移動 shift加速移動 滑鼠右鍵旋轉檢視 滑鼠中鍵移動檢視 alt 右鍵縮放 alt 左鍵旋轉物體視角 q移動場...

Unity3D遊戲開發初探

1 如何在遊戲指令碼程式中建立物件而不是一開始就建立好物件?使用gameobject的靜態方法 createprimitive view code 其中在createcube方法中,使用gameobject.createprimitive方法來建立cube型別的遊戲物件例項,設定了它出現的座標並為它...

Unity 3D遊戲開發導學

策劃 美工軟體工程師 測試工程師 客服等.unity是一款遊戲引擎 遊戲引擎 一款遊戲最最最核心的 程式框架。包含以下系統 渲染引擎,物理引擎,碰撞檢測系統,音效,指令碼引擎,動畫系統,人工智慧,網路引擎,以及場景管理。使用遊戲引擎,開發者可以重用已有的核心技術,將精力集中在遊戲邏輯和設計上,從而簡...