点点滴滴
posts - 311, comments - 0, trackbacks - 0, articles - 0
C++博客
::
首页
::
新随笔
::
联系
::
聚合
::
管理
(搬运工)NGUI官网示例8 – Scroll View(Camera)
Posted on 2013-10-15 11:52
点点滴滴
阅读(3782)
评论(0)
编辑
收藏
引用
所属分类:
02 编程语言
在上一个示例中的
ScrollView
使用到了
Shader
的处理,而对于一些低端的机器或者移动设备可能会出现显示不正常的结果,所以,
NGUI
还为我们准备了另外一个处理方式,也就是通过摄像机的移动来达到同样的目的。接下来,这个示例就是告诉大家如何实现这个功能。
首先先制作一个普通的
GUI
界面,这些界面在上面的教程中已经说过,这里就不再赘述,其最终效果如图所示:
现在来制作那些可以滚动的
Item
结构。使用
Create a new UI
创建一个
NGUI
基本结构,并调整它们的层次关系,并把
UIRoot
下的
Panel
组件删除掉,最终如图所示:
新建一个新的空游戏对象,并命名为
Offset
,并放置在
anchor
成为它的子物体,并
reset
一下,同时给它添加一个
Panel
组件(
Component->NGUI->Interation-> Panel
)
,
这样,该对象才能放置
NGUI
元件。如图所示
:
同
NGUI
官网示例
7-- ScrollView
讲解
(
一
)
(
http://game.ceeger.com/forum/read.php?tid=4269
)
一样,创建
1
个
Item
元件,然后用
Ctrl+D
的方法复制出
9
个来,当然你也可以复制你需要的数量,现在这些
Item
都是重叠在一起的,最终效果如图所示:
选择
Offset
,为其添加一个
Table
组件(
Component->NGUI->Interaction -> Table
)。哈,神奇的效果在此出现,只是上一个教程使用
Grid
组件,这次使用的是
Table
,这个
Table
和
Grid
的不同,可以查下官网的说明。这里不赘述。如图所示:
选择第一次创建的
GUI
结构,选择
Window
下的
TiledSprite
,如图所示:
在下面创建两个空的游戏对象,并分别命名为
BottomRight
和
TopLeft
,这两个空对象用来标记滚动
Item
的边界,并在场景编辑窗口中放置在对应的位置,最后为该
TiledSprite
添加一个
UIDragCamera
组件(
Component->NGUI->Interation -> DragCamera
)如图所示:
选择第二个
Camera
,为其添加一个
ViewCamera
组件(
Component->NGUI->UI-> ViewCamera
)
,
并把第一个摄像机赋值给
SourceCamera
,把
TopLeft
对象赋值给
Top Left
,把
BottomRight
赋值给
Bottom Right
,然后选择
Offset
,调整该对象的位置,如图所示:
为该摄像机添加一个
DraggableCamera
组件(
Component->NGUI->Interaction-> DraggableCamera
)
,
并为其设置参数,如图所示
再次选择刚才添加了两个空对象的择
Window
下的
TiledSprite
,把第二个
Camera
赋值给该元件中的
DragCamera
组件中的
DraggableCamera
,其结果如下
接着同样选择该
TiledSprite
,为其添加一个
Collider
,这样,才能接受输入信息(
NGUI-> Attach a Collider
)。哈哈。真好
Happy
,看结果,结果一个点击播放,成这样了?!虽然能够接受到输入信息,但是,死活拖不动
原来,在第二个
GUI
结构中的
Anchor
对象中,原来默认组件
UIAnchor
中的参数
UICamera
是第二个摄像机,我们现在把它改成第一个摄像机,再点击播放,
Well Done
!成功了!
接着给每个
Item
添加一个
DragCamera
组件(
Component->NGUI-> Interaction -> DragCamera
)和一个
Trigger
(
Ngui->Attach a Collider
)。再为其添加一个
ButtonScale
组件和一个
buttonSound
组件(都在
Component->NGUI->Interaction
中)
最后来实现那个
Press me
按钮。首先,选择
Window
对象,为其添加一个
TweenPosisiton
组件(
Component->Tween->Position
),并关闭它(我们将用按钮来开启它),并设置它的参数,如图所示
Powered by:
C++博客
Copyright © 点点滴滴
日历
<
2010年11月
>
日
一
二
三
四
五
六
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
游戏
搜索
积分与排名
积分 - 463392
排名 - 45
最新评论