點點滴滴
posts - 311, comments - 0, trackbacks - 0, articles - 0
C++博客
::
首頁
::
新隨筆
::
聯系
::
聚合
::
管理
(搬運工)NGUI官網示例6 – Draggable Window講解(二)
Posted on 2013-10-15 11:49
點點滴滴
閱讀(1259)
評論(0)
編輯
收藏
引用
所屬分類:
02 編程語言
制作鼠標停留在按鈕上時的按鈕動態效果。創建一個空游戲對象,命名為animation,把它拖到Button-hello上,成為其子物體,把該按鈕下面的兩個子對象拖到Animation空對象上,成為它的子物體。并為Animation空對象添加一個Animation組件(Component->Miscellaneous->animation),添加完成之后,在該組件種的animation屬性中的最右邊小圓圈上點擊,在彈出的對話框中選擇button動畫文件,該動畫文件是在unity的animation曲線窗口中編輯保存的。把play automatically取消掉,最終如圖所示:
選擇
Button-hello
,為其添加一個
button play animation
組件(
Component->Ngui ->interaction->button play animation
)。把該按鈕下的
animation
對象拖到該組件的
Target
上,設置
Trigger
為
OnHover
(當鼠標放置在該按鈕上時,播放
Target
上的動畫)。對
Button-world
進行同樣的操作,最后點擊播放,當鼠標放置在該按鈕上時,就會播放按鈕的動畫了,如圖所示:
使用同樣的方法制作
checkbox
的鼠標停留在上面時的效果,其結構和設置如圖所示:
OK。窗口中按鈕和checkbox的鼠標停留效果就做好了。點擊播放看看。
下面開始制作窗口的拖拽效果,其中還三個輔助功能,一個是攝像機跟隨(CameraYaw)、移動延遲(LagPosition)以及窗口搖擺(DragTile)。首先來實現窗口的拖拽功能。因為我們希望當鼠標在窗口的標題欄按下左鍵之后不放才可以拖動該窗口,所以我們選擇該窗口的標題欄(SlicedSprite),為它添加一個DragObject組件(component->NGUI->Interaction->Drag Object),接著把window游戲對象賦值給該組件下的Target變量,點擊運行之后,發現并沒有任何反應,后來找了大半天,終于知道,我忘了給這個元件加一個碰撞盒,選擇SlicedSprite,然后選擇菜單中的NGUI->attach a collider(NGUI就是通過碰撞盒中的觸發器方式來進行輸入監聽的),結果如圖所示:現在點擊播放,可以發現,窗口可以被拖動了。
實現窗口拖動的三個輔助功能,也就是讓它的運動更加靈活,而不死板。首先來實現它的延遲移動效果。創建一個空的游戲對象,并把它命名為LagPosition,把它拖到Window對象下,成為window的子物體,reset一下,再把Panel作為LagPosition子物體。接著為LagPosition添加一個LagPosition組件(Component->NGUI->Example ->Lag Position)。你現在點擊播放,然后鼠標以較快的速度拖動窗口,會發現,窗口會以一種組件靠近目前鼠標位置的方式運動。如圖所示:
實現攝像機的跟隨變換。創建一個空的游戲對象,命名為Yaw,把他拖動到LagPosition下,reset一下,再把Panel作為它的子對象。接著為Yaw對象添加一個WindowAutoYaw組件(Component-> NGUI->Example->Window Auto Yaw)。現在點擊播放,可以發現,攝像機會自動地進行Yaw操作。參數和結構如圖所示:
最后,實現窗口的搖擺效果。創建一個新的空游戲對象,命名為
DragTile
,并把它作為
LagPosition
的子物體,
reset
一下,接著把
Panel
拖到
DragTile
成為它的子物體。接著,為
DragTile
對象添加一個
Window Drag Tile
組件(
Component->NGUI->Example ->Window Drag Tile
)。其參數和結構如圖所示:
大家發現,現在三個輔助效果都是同時更新,現在我們按照一定的次序來安排更新效果,在
Lag Position
、
Window Auto Yaw
和
DragTile
中都有一個
Update Order
屬性,用來控制其更新次序的,數字越大,更新排序越后。我們設置
Lag Position
為
1
,
Window Auto Yaw
為
2
,
DragTile
為
3
。這樣重新播放,可以看起來,更加自然了。
實現
Checkbox
控制
WindowAutoYaw
和
DragTile
的開關。選擇
Checkbox-Yaw
,為其添加一個
Checkbox Controlled Component
(
Component->NGUI->Interaction-> Check box Controlled Component
)。再把
Yaw
對象賦值給其中的
Target
中。這個組件可以控制
Target
對象中的組件的開關。接著,對
CheckBox-Tile
進行相同的操作,只是把
Target
賦值為
DragTile
。最后如圖所示:
這樣,窗口的拖動效果就大功告成了!
三、
制作燈光效果
最后就是為它添加效果,美化一下。
創建一個點光源,設置它的
Range
為
0.3
,
Color
為黑色,
Intensity
為
8
。把
PointLight
成為
Button-Hello
按鈕下
Background
的子物體,并
reset
一下位置,接著再把它的位置放在按鈕前面。如圖所示:
為
Button-Hello
按鈕添加一個
Button Color
組件(
Component->NGUI->Interaction-> Button Color
)。接著把
pointlight
賦值給
Target
,同時把
Press
后面的顏色換成黑色。其中
Target
用于確定需要控制的對象,
Hover
表示該對象當鼠標放在該按鈕上時被控制對象的最終顏色,
Press
表示該對象被按下時該被控制對象最后的顏色。現在點擊播放,可以看到其最后的效果。對
Button-World
按鈕進行同樣的操作,只是
pointlight
的位置放在
button-World
上面而已。如圖所示:
制作
Logo
的流光效果。創建一個空的游戲對象,并命名為
Logo
,拖到
Panel
下,成為其子對象,并調整到窗口中
logo
的中心位置,接著,把
Sprite
(
NGUI
)拖到它的下面,成為
Logo
對象的子對象。接著創建一盞點光源,并把它放到
Logo
下,同樣成為它的子對象,接著調整燈光的位置。
為燈光添加一個
Animation
組件(
Component->Miscellaneous->Animation
),并把該組件中的
Animation
屬性設置為
Logo
動畫文件(這個動畫文件可以通過動畫曲線編輯窗口進行創建,見
lights and Refraction
講解
http://game.ceeger.com/forum/read.php?tid=4226
),同時關閉該組件,接著為燈光添加一個
Active Animation
組件(
Component->Ngui->Internal->Active Animation
)
,
同樣把該組件關閉。把燈光的顏色和范圍設置如下,如圖所示:
選擇
Logo
對象,在菜單欄中選擇
NGUI -> Attach a Collider
,為其添加一個碰撞盒,接著為它添加一個
Button Play Animation
組件(
Component->NGUI->Interaction-> button play animation
)。把
target
屬性設置成
point light
,也就是
logo
上面的那個點光源,接著
Trigger
設置成
OnHoverTrue
。點解播放,
ok
,完成!如圖所示:
最后為它添加一個修飾作用的背景。選擇
Create a new Widget
窗口,在
template
屬性中選擇
Simple Texture
。點擊
Add to
,為其添加一個簡單的材質元件。接著把該元件拖到
Camera
下面,成為其子物體,接著,把
backdrop
材質球賦值給該元件下面的
Material
中。最后調整這個元件的位置和縮放。最后效果如圖所示:
圖片:27.png
http://game.ceeger.com/forum/read.php?tid=4244;ds=1
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
最新評論
久久久久成人精品无码
|
久久久久99精品成人片欧美
|
久久精品国产亚洲AV香蕉
|
久久综合一区二区无码
|
看全色黄大色大片免费久久久
|
日本久久久久久中文字幕
|
久久99国产精品久久99果冻传媒
|
久久久久亚洲av无码专区导航
|
亚洲AV无码久久精品成人
|
久久99热这里只频精品6
|
精品多毛少妇人妻AV免费久久
|
亚洲精品无码久久久久去q
|
伊人久久无码中文字幕
|
一本色道久久99一综合
|
久久人人爽人人爽人人片AV不
|
7777久久久国产精品消防器材
|
久久久无码精品亚洲日韩蜜臀浪潮
|
欧美亚洲国产精品久久高清
|
久久久综合九色合综国产
|
99久久精品免费
|
亚洲精品无码专区久久同性男
|
久久99久久99精品免视看动漫
|
国产精品久久久久影院嫩草
|
很黄很污的网站久久mimi色
|
久久久久久精品无码人妻
|
精品久久一区二区三区
|
99久久综合国产精品免费
|
99999久久久久久亚洲
|
久久久久无码国产精品不卡
|
亚洲AV无码久久精品狠狠爱浪潮
|
青青青国产精品国产精品久久久久
|
久久嫩草影院免费看夜色
|
婷婷久久香蕉五月综合加勒比
|
久久精品国产亚洲网站
|
久久久精品国产免大香伊
|
久久777国产线看观看精品
|
yy6080久久
|
久久久精品人妻无码专区不卡
|
2021精品国产综合久久
|
模特私拍国产精品久久
|
久久久久综合国产欧美一区二区
|