點點滴滴
posts - 311, comments - 0, trackbacks - 0, articles - 0
C++博客
::
首頁
::
新隨筆
::
聯系
::
聚合
::
管理
(搬運工)NGUI官網示例2-interaction-講解(一)
Posted on 2013-10-15 11:42
點點滴滴
閱讀(569)
評論(0)
編輯
收藏
引用
所屬分類:
02 編程語言
NGUI
例子制作過程,由筆者參照
NGUI
的例子重新自己做了一遍,以加深對
NGUI
用法的理解。(建議先看下官網的基礎教程,對
NGUI
有初步了解之后,再看這個帖子。)
二、
Example2 – Interaction
其最終效果如圖所示
,
當點擊
Show
按鈕時,窗口會過度到平躺位置,并出現兩個立方體,這兩個立方體當鼠標位于上面時,會出現按鈕的
onHover
效果:
1.
新建一個場景,并把該場景中的
MainCamera
刪除掉,并通過菜單中的
NGUI->Create a new UI
新建一個
UI
結構,如圖所示:
刪除
Anchor
和
UIRoot
(
3D
),只留下
Panel
,并把
Panel
命名為
Message Root
,如圖所示:
在
MessageRoot
下,創建一個空游戲對象,并命名為
3D UI
,并
reset
它的所有變換,
reset
這一步很重要,不然以后的
GUI
元素可能位置就不對了。如圖所示:
首先先使用
Create a widget
工具創建一個
Sprite
,并命名為
UISprite-Background
,并在編輯窗口中調整它的大小,設置其深度為
-5
,該
Sprite
用于作為背景,其參數如圖所示:
在
3D UI
層級中,新建一個空游戲對象,并命名為
Window
,該對象用于整體調整下面
GUI
的移動和旋轉等。如圖所示:
下面來制作
Window
中的各個元素。首先創建背景。使用
Create a widget
,使用
UITiledSprite
,該元素可以等你放大它的范圍時,它會以平鋪的方式顯示,這樣可以大大節省資源的體積。該其參數如下:
使用
Create a Widget
中的
Sliced Sprite
,創建標題欄,該元素可以在放大范圍時,拉伸其背景。創建好之后在編輯窗口中改變它的位置和大小,使其在窗口的頂端,其參數和效果如下:
再為背景添加一個半透明的
SlicedSprite
,其參數和效果如下:
創建一個
Label
,作為該窗口的標題,其參數和效果如下
:
創建一個
Label
,作為窗口中的文字說明,其參數和效果如下:
創建一個按鈕,命名為:
button-show
,設置該按鈕的
Label
文字描述為
Show
,設置
Background
的顏色為深藍色,調整它的位置和大小,最終效果如圖所示:
為該
Button
創建一個空的子物體,并命名為
Animation
,最后對該空物體添加一個
Animation
組件(
Component->Miscellaneous->Animation
),并在
project
窗口中找到
NGUI->Examples->Animations->Button
,把該腳本添加到
Animation
組件中的
Animation
中。(這個
Button
的動畫可以用于實現按鈕在某種狀態下的動畫效果)接著把
Button
下面的
Label
和
Background
拖到
Animation
對象上,成為其子對象,如圖所示:
為
Show
按鈕添加三個裝飾圖標,這三個圖標都是
Sprite
元素,可以制作一個之后,使用
Ctrl+D
復制出另外兩個,并設置它的位置和顏色,最后可以添加一個空的游戲對象,并命名為
ICON
,把這三個圖標拖到
ICON
中,這樣可以方便管理,其最終結果如圖所示:
復制該
Button
,并把該
Button
的
Label
文本設置成
HIDE
,命名為
button-hide
再把
ICON
刪除掉,調整它的位置,最終效果如圖所示:
現在,來完成當鼠標放置在按鈕上面時,即
onHover
狀態時,它的動畫效果。我們以
Show
按鈕為例子,
Hide
的設置類同。選擇
Button-show
,為該按鈕添加一個
UIButtonPlayAnimation
組件(菜單中
Component->NGUI->Interaction->Button Play Animation
)。添加之后,把該按鈕下的
Animation
賦值給該組件中的
Target
變量,設置
Trigger
為
OnHover
,點擊播放,當把鼠標放置在該按鈕上時,可以看到已經有動畫效果了,此時可以對比未對
Hide
按鈕添加
UIButtonPlayAnimation
組件時的效果。參數如圖所示:
對
Button-hide
按鈕進行相同的操作。
接下來,完成窗口的變換(移動和旋轉),使其當點擊
show
按鈕時,窗口平躺下來。新建兩個空游戲對象,并命名為
WindowActive
和
WindowInactive
,這兩個對象只包含了對象的變換信息(平移、旋轉和縮放)。我們將用這個兩個空游戲對象的變換信息來制作窗口在這兩個位置間的平滑過渡。首先把該兩個游戲對象放置到
3D UI
對象下,成為它的子物體,然后把這兩個對象
reset
一下,接著,調整
WindowInactive
的旋轉角度和位置。而
WindowActive
保持變換不變。注意,此時當中的
scale
參數最好跟
Window
中的縮放一樣,除非你要實現縮放效果,如圖所示:
選擇
Window
對象,為其添加一個
TweenTransform
組件(
Compoent->NGUI->Tween-> Transform
),該組件可以根據兩個
Transform
對象來在它們之間進行平滑過渡。添加組件之后,把
WindowActive
和
WindowInactive
對象賦值給該組件下的
From
和
To
下,同時把給組件的
Enable
關掉,我們將使用
Show
按鈕來控制它的打開,具體參數如下,如圖所示:
為
Show
按鈕添加
UIButtonTween
組件(
Component->NGUI->Interaction->Button Tween
),該組件可以使得
Target
中的
Tween
類型的動畫進行開關。把
Window
對象賦值給該組件下的
Target
,并設置
PlayDirection
為
Forward
,
Trigger
為
OnClick
,
If Disabled On Play
為
EnableThenPlay
,表示當播放該動畫時,啟動
Target
中的
Tween
類型動畫。這個組件是關鍵。點擊播放,可以看到最終的效果,你可以在播放時,在沒按下
show
按鈕之前選擇
Window
組件,可以看到此時的
TweenTransform
組件是關閉的,當你按下
show
按鈕之后,該組件被打開了,播放完之后,又被關閉。
現在來完成當點擊
Hide
按鈕時,窗口回到原來的位置,同樣給該按鈕添加一個
UIButtonTween
組件,把
Window
對象賦值給該組件下的
Target
,
Trigger
設置為
OnClick
,
Play Direction
設置為
Reverse
,
If Disabled On Play
設置為
DoNothing
。完成之后,點擊播放,查看效果,如圖所示:
以上幾步就實現了官網上的
Interaction
中窗口位置的平滑變換效果。關鍵是
UIButtonTween
和其他的
Tween
類型之間的連接。最后,把攝像機調整到其他的角度
Powered by:
C++博客
Copyright © 點點滴滴
日歷
<
2014年9月
>
日
一
二
三
四
五
六
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
公告
留言簿
(9)
給我留言
查看公開留言
查看私人留言
隨筆分類
(268)
01 數學基礎(5)
02 編程語言(175)
03 編程工具(6)
04 硬件基礎(2)
05 圖像基礎(3)
06 多媒體
07 壓縮加密
08 游戲SDK(10)
09 游戲策劃(3)
10 服務器(42)
11 生活隨想(12)
12工具收集(1)
19 源碼收集(9)
隨筆檔案
(311)
2017年5月 (1)
2016年12月 (2)
2016年11月 (7)
2014年10月 (4)
2014年9月 (2)
2014年7月 (1)
2014年2月 (1)
2013年11月 (4)
2013年10月 (42)
2013年8月 (1)
2013年7月 (1)
2013年6月 (3)
2013年5月 (3)
2013年4月 (2)
2013年3月 (4)
2013年2月 (3)
2013年1月 (2)
2012年11月 (3)
2012年10月 (3)
2012年9月 (12)
2012年8月 (8)
2012年7月 (47)
2012年6月 (3)
2012年5月 (4)
2012年3月 (4)
2012年2月 (5)
2012年1月 (2)
2011年12月 (5)
2011年11月 (4)
2011年10月 (3)
2011年9月 (5)
2011年8月 (2)
2011年7月 (2)
2011年6月 (7)
2011年5月 (13)
2011年4月 (9)
2011年3月 (17)
2011年2月 (9)
2011年1月 (25)
2010年12月 (10)
2010年11月 (24)
2010年10月 (2)
相冊
blog
游戲
搜索
積分與排名
積分 - 468071
排名 - 45
最新評論
久久A级毛片免费观看
|
97久久精品无码一区二区
|
一本色道久久88加勒比—综合
|
99久久精品费精品国产一区二区
|
精品久久人人爽天天玩人人妻
|
久久免费视频1
|
久久福利青草精品资源站免费
|
亚洲精品无码久久不卡
|
99999久久久久久亚洲
|
亚洲色欲久久久久综合网
|
久久精品成人国产午夜
|
国内精品久久久久影院老司
|
久久综合久久综合久久
|
亚洲级αV无码毛片久久精品
|
亚洲伊人久久大香线蕉苏妲己
|
99久久精品国产一区二区
|
国产叼嘿久久精品久久
|
99精品久久精品一区二区
|
久久人人爽人人人人爽AV
|
日本久久久久久中文字幕
|
久久99国产综合精品
|
久久精品一本到99热免费
|
久久青青草原精品国产不卡
|
久久精品嫩草影院
|
国产综合久久久久久鬼色
|
精品无码久久久久国产动漫3d
|
久久综合色之久久综合
|
国产999精品久久久久久
|
久久久久久久尹人综合网亚洲
|
国产综合精品久久亚洲
|
精品久久无码中文字幕
|
亚洲中文久久精品无码ww16
|
久久99国产精品久久99果冻传媒
|
亚洲级αV无码毛片久久精品
|
久久久久久亚洲精品影院
|
久久精品国产99国产精品
|
99久久久久
|
久久免费观看视频
|
精品久久久久一区二区三区
|
大香伊人久久精品一区二区
|
欧美激情精品久久久久久久九九九
|