(搬運工)NGUI官網示例11 –Drag ; Drop(圖標與物體拖拽放置)(一)
Posted on 2013-10-15 11:55 點點滴滴 閱讀(2369) 評論(0) 編輯 收藏 引用 所屬分類: 02 編程語言NGUI官網示例11 –Drag ; Drop(圖標與物體拖拽放置)
游戲中經常會用到儲物箱等GUI,GUI的一邊是物品的圖標,另一邊是一個角色,你可以拖動這些圖標放置到角色上,為它裝配裝備。那么我們首先來實現較為簡單的Drag;Drop功能。如圖所示:

首先來制作三維的場景:
1. 使用Create a new UI對話框創建一個Advanced3D UI,如圖所示:

把Panel拖出來,脫離Anchor父物體,然后改名為3D,接著把Camera作為子物體拖動到Panel下面,reset一下Camera對象,最后刪除UI Root(3D)對象和Anchor對象,這里刪除UIRoot是因為這個對象只是用于調整GUI大小的,
而我們這個層級只要顯示一個立方體和一個背景而已,如圖所示

選擇Camera,使用WidgetTool對話框在Camera下創建一個SlicedSprite對象,調整其大小和位置,作為其背景,如圖所示

創建一個空的游戲對象,并命名為stage,該對象用來使得其子物體能夠自動旋轉,把該游戲對象放置到3D對象下,成為其子物體,并reset一下,如圖所示

在stage下創建一個Cube,并為該Cube賦予一個brick材質,在project窗中,打開NGUI-> Example->brick。并調整它的大小,如圖所示

選擇stage對象,調整它的位置,如圖所示

再次選擇stage對象,為它添加一個spin組件(Component->NUI->Example->spin),這個組件可以旋轉自身,并設置其參數,點擊播放,可以看到立方體旋轉起來了。當然這里大家應該知道,子物體會繼承父物體的所有變換
(平移、縮放和旋轉)。如圖所示

選擇cube對象,為其添加一個SpinWithMouse組件(Component->NGUI->Example->Spin With Mouse),該組件可以使得物體隨著鼠標的拖動而轉動,如圖所示

在3D對象下創建一個Direction Light,這樣就把場景照亮了,這樣場景就漂亮多了,如圖所示

接下來,我們來制作GUI部分。使用Create a new UI對話框,創建一個Simple 2D,如圖所示
把Anchor對象改名為Anchor Bottom,并設置其side參數為Bottom。如圖所示

選擇Panel,改名為Window Panel,使用WidgetTool創建一個SlicedSprite,設置參數,并把該元件改名為background,并調整它的大小和位置,如圖所示
現在看到視口中間還有一個正方形,這個東西是我們上面那個3D對象層級的背景,我們選擇UIRoot(2D)對象包括其子對象,為其添加一個2DGUI layer(如何添加Layer和Layer的作用在unity文檔中有描述,這里不再贅述)。選擇UIRoot(2D)中的Camera,設置其Culling Mask為2DGUI,也就是說這個攝像機只顯示這個Layer中的對象,其他Layer的對象不會在這個攝像機中顯示。最后效果如圖所示

選擇WindowPanel,為其添加一個新的Panel(NGUI->create a Panel),并重新命名為ListPanel,如圖所示

為ListPanel創建一個空的游戲對象,并命名為DragDropContainer,reset一下,并為它添加一個Collider(NGUI->Attach a collider),如圖所示

游戲中經常會用到儲物箱等GUI,GUI的一邊是物品的圖標,另一邊是一個角色,你可以拖動這些圖標放置到角色上,為它裝配裝備。那么我們首先來實現較為簡單的Drag;Drop功能。如圖所示:

首先來制作三維的場景:
1. 使用Create a new UI對話框創建一個Advanced3D UI,如圖所示:

把Panel拖出來,脫離Anchor父物體,然后改名為3D,接著把Camera作為子物體拖動到Panel下面,reset一下Camera對象,最后刪除UI Root(3D)對象和Anchor對象,這里刪除UIRoot是因為這個對象只是用于調整GUI大小的,
而我們這個層級只要顯示一個立方體和一個背景而已,如圖所示

選擇Camera,使用WidgetTool對話框在Camera下創建一個SlicedSprite對象,調整其大小和位置,作為其背景,如圖所示

創建一個空的游戲對象,并命名為stage,該對象用來使得其子物體能夠自動旋轉,把該游戲對象放置到3D對象下,成為其子物體,并reset一下,如圖所示

在stage下創建一個Cube,并為該Cube賦予一個brick材質,在project窗中,打開NGUI-> Example->brick。并調整它的大小,如圖所示

選擇stage對象,調整它的位置,如圖所示

再次選擇stage對象,為它添加一個spin組件(Component->NUI->Example->spin),這個組件可以旋轉自身,并設置其參數,點擊播放,可以看到立方體旋轉起來了。當然這里大家應該知道,子物體會繼承父物體的所有變換
(平移、縮放和旋轉)。如圖所示

選擇cube對象,為其添加一個SpinWithMouse組件(Component->NGUI->Example->Spin With Mouse),該組件可以使得物體隨著鼠標的拖動而轉動,如圖所示

在3D對象下創建一個Direction Light,這樣就把場景照亮了,這樣場景就漂亮多了,如圖所示

接下來,我們來制作GUI部分。使用Create a new UI對話框,創建一個Simple 2D,如圖所示


選擇Panel,改名為Window Panel,使用WidgetTool創建一個SlicedSprite,設置參數,并把該元件改名為background,并調整它的大小和位置,如圖所示


選擇WindowPanel,為其添加一個新的Panel(NGUI->create a Panel),并重新命名為ListPanel,如圖所示

為ListPanel創建一個空的游戲對象,并命名為DragDropContainer,reset一下,并為它添加一個Collider(NGUI->Attach a collider),如圖所示
