點點滴滴
posts - 311, comments - 0, trackbacks - 0, articles - 0
C++博客
::
首頁
::
新隨筆
::
聯系
::
聚合
::
管理
(搬運工)NGUI官網示例6 – Draggable Window講解(二)
Posted on 2013-10-15 11:49
點點滴滴
閱讀(1264)
評論(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 © 點點滴滴
日歷
<
2025年8月
>
日
一
二
三
四
五
六
27
28
29
30
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
31
1
2
3
4
5
6
公告
留言簿
(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
游戲
搜索
積分與排名
積分 - 471738
排名 - 45
最新評論
国产成人精品久久亚洲高清不卡
|
中文字幕久久精品
|
国产精品99精品久久免费
|
中文字幕人妻色偷偷久久
|
久久久久高潮毛片免费全部播放
|
色偷偷久久一区二区三区
|
91久久精品国产成人久久
|
一本久久综合亚洲鲁鲁五月天
|
国产A三级久久精品
|
国产成人久久777777
|
久久久www免费人成精品
|
久久精品国产清高在天天线
|
色婷婷狠狠久久综合五月
|
国产精品久久久亚洲
|
久久中文字幕人妻熟av女
|
久久久国产精品网站
|
亚洲精品蜜桃久久久久久
|
久久精品亚洲福利
|
久久精品这里热有精品
|
久久人人爽人人爽人人片AV不
|
久久香蕉一级毛片
|
一本一道久久综合狠狠老
|
国产午夜福利精品久久
|
国内精品久久久人妻中文字幕
|
嫩草伊人久久精品少妇AV
|
性高湖久久久久久久久AAAAA
|
久久伊人精品青青草原高清
|
久久人爽人人爽人人片AV
|
久久综合给久久狠狠97色
|
狠狠色噜噜色狠狠狠综合久久
|
四虎亚洲国产成人久久精品
|
久久九色综合九色99伊人
|
久久免费大片
|
性做久久久久久免费观看
|
色老头网站久久网
|
精品久久久一二三区
|
伊人热热久久原色播放www
|
色播久久人人爽人人爽人人片AV
|
人妻中文久久久久
|
狠狠色狠狠色综合久久
|
国产精品国色综合久久
|