请选择 进入手机版 | 继续访问电脑版

【3D技术宅公社】XR数字艺术论坛  XR技术讨论 XR互动电影 定格动画

 找回密码
 立即注册

QQ登录

只需一步,快速开始

调查问卷
论坛即将给大家带来全新的技术服务,面向三围图形学、游戏、动画的全新服务论坛升级为UTF8版本后,中文用户名和用户密码中有中文的都无法登陆,请发邮件到324007255(at)QQ.com联系手动修改密码

3D技术论坛将以计算机图形学为核心,面向教育 推出国内的三维教育引擎该项目在持续研发当中,感谢大家的关注。

查看: 11308|回复: 4

[NGUI插件] NGUI官网示例7-- ScrollView讲解(一)

[复制链接]
发表于 2013-11-22 15:14:50 | 显示全部楼层 |阅读模式
其效果如图所示:







NGUI的ScrollView能够实现鼠标或者手势对图标的滚动操作,现在在很多的游戏中都能够见到。例如在《愤怒的小鸟》中的关卡选择等等。实现图标的滚动操作在NGUI中很容易实现,只要在Panel中加入一个UIDragPanelContents组件,再做些细节上的操作就可以了。在本教程中,我们将分三步来完成这个例子。第一步,创建窗口背景;第二步,创建和实现图标滚动效果;第三步,实现一些小细节上的效果。



第一步,创建窗口



1.  选择菜单上的NGUI->Create a new UI,出现UI Tool窗口,选择Camera为Simple2D,然后点击Create Your UI,创建原始的GUI对象结构,在此不给出截图,节约点图片。哈哈。

2.  调整它的原始结构,把Anchor改名为Anchor-Center,为Anchor-Center添加一个空的子游戏对象,并命名为WindowRoot,并且reset一下,接着把panel改名为Panel-Window,并拖到WindowRoot下成为其子物体,成为如图所示:







现在来完成Panel-Window的制作。创建一个空游戏对象,命名为Background,并成为Panel-Window的子对象,并reset一下。在其下使用Create a new widget对话框,创建一个Tiled Sprite

件,其参数为Atlas:WoodenAtlas,Font:Arimo14,Template:TileSprite,Sprite:Honeycomb;大小X:770,Y:570;Color Tint为R:255,G:236,B:206,把刚才那个木质背景改名为

background,如图所示:







为它创建一个窗口边框,使用Create a new Widget对话框创建一个Sliced Sprite元件,Atlas为WoodenAtlas,Font为Arimo14,Template为Sliced Sprite,Sprite为Glow-Outer,大小为X:

814,Y为614,Color Tint为黑色,其,Depth为-3,比background低一个数值。把该元件改名为Glow,如图所示:







接下来制作窗口的上方Title。创建一个空的游戏对象,命名为Title,并成为WindowRoot的子对象,要记得reset一下。创建一个TiledSprite,参数为WoodenAtlas,Font为Arimo14,Template

为TitedSprite,Color Tint为浅灰色;并成为Title的子对象,并命名为background。



创建一个SlicedSprite,其Sprite参数为Glow-Inner,该元件命名为Glow,Color Tint为黑色,Depth为-1,调整它的大小和位置,使得其围绕Title下的background的外围;



创建一个SlicedSprite,Sprite为Glow-Inner,Color Tint为暗灰色,并命名为Shadow,调整大小和位置,使得它覆盖Title下的background。



最后创建一个Label,参数为Font:Arimo20,Effect为OutLine,颜色为天蓝色,这样可以为它添加一个字体外框。其文本为Scroll View,最后的结果如图所示:







创建一个Label,参数为Font:Arimo18,Line Width为720,Effect为Shadow,Shadow颜色为黑色,Color Tint为深棕黄色。其效果如图所示:







创建图标滚动背景。创建一个SlicedSprite,参数为Template为SlicedSprite,Sprite为Hightlight-Shadow,Color Tint为黑色,大小X为724,Y为266,并调整它的位置,并命名为Outline,如图所示:







创建一个ScrollBar,参数为Template为ScrollBar,Background为Hightlight-Shadows,Foreground为Button,Direction为Horizontal。如图所示:




 楼主| 发表于 2013-11-22 15:17:48 | 显示全部楼层
首先先创建这个窗口的拖动图标。在菜单上选择NGUI->Create a Panel,在WindowRoot下创建一个新的Panel,并命名为Panel ClipView。如图所示:







创建一个空的游戏对象,命名为UIGrid,该对象用来自动调整它的子对象的排列方式。并把该游戏对象作为Panel ClipView的子对象,并reset一下。如图所示:







新建一个空的游戏对象,命名为Item 1。并作为UIGrid的子对象,并reset一下。如图所示:







接着,使用我们先前学过的创建Widget的方法,为它创建图标的外观(这里不再赘述),最后效果如图所示:







使用Ctrl+D的方式复制出9个Item,位置重叠不要紧,等会为UIGrid加上一个组件之后会有神奇的效果。如图所示:







现在选择UIGrid,为它添加一个Grid组件(Component->NGUI->Interaction->Grid),这时候神奇的效果出现了,真佩服NGUI的功能,它会自动排列好它的组件,最终效果如图所示:







因为NGUI的事件响应是通过Trigger来实现的,所以,选择所有的Item(在hierarchy里选择Item 1,然后按住shift键,再点击Item 9,这样就连选了所有的Item元件),为它们添加一个Trigger,(NGUI->Attach a collider)。然后再为它们添加一个Drag Panel Content组件(Component->NGUI->Interaction->Drag Panel Contents),加上这个组件之后,就表明这些item是Drag Panel的一部分(必须添加的)。如图所示:





(这一步是关键)选择Panel ClipView,为其添加一个Draggable panel组件(Component->NGUI-> Interatcion->Draggable Panel)。点击播放,可以看到,这些Item终于可以通过鼠标划动了。如图所示:







现在这里有一个问题,如果你鼠标左右移动时没有任何问题,可是上下移动时,这些item也跟着上下移动,如图所示:







选择Panel ClipView中的DraggablePanel组件,打开Scale参数,把其中的Y和Z轴的值设置为0,这样,就可以把拖动方向限制在x轴上。如图所示:







最后,大家还记得我们已经做了一个滚动条在下方,我们可以用它来控制item的滚动,很简单,把这个元件赋值给Panel ClipView的DraggablePanel组件下的Horizontal Scroll Bar,就可以了,如上图。点击播放,现在你可以使用那个滚动条来对item进行滚动了!



这样,我们就实现了图标的滚动了。分为三步,第一步是使用Grid组件对Item进行排列;第二部是为为Panel添加DraggablePanel组件;第三步是为每个Item添加Trigger和Drag Panel Content。
发表于 2017-11-5 17:17:26 | 显示全部楼层
图片为什么都看不了??
发表于 2018-3-27 11:34:42 | 显示全部楼层
pandora jewelry
converse outlet
moncler pas cher
discount ray ban sunglasses
polo ralph lauren outlet online
nike outlet online
adidas yeezy boost 350
pandora charms sale clearance
cheap jordan shoes
michael kors outlet store
canada goose sale
ugg sale
cheap jordan shoes
vans outlet store
cheap ray ban sunglasses
ugg outlet online
kate spade handbags
coach outlet canada
birkin handbags
moncler sale
birkenstock uk
coach factory outlet online
adidas
coach outlet store
pandora charms sale
nike outlet store online
supra for sale
ugg outlet
birkenstock shoes
ecco outlet
coach outlet online
michael kors
christian louboutin sale
timberland outlet
cheap jordans
michael kors uk
canada goose coats
ugg outlet store
nike outlet store
nfl jerseys
birkenstock sandals
longchamp outlet
yeezy shoes
air max 90
ray ban sunglasses outlet
prada shoes
puma outlet
michael kors outlet store
coach factory outlet online
kate spade outlet store
louboutin outlet
coach factory outlet online
adidas campus shoes
yeezy shoes
louis vuitton handbags
michael kors outlet clearance
adidas originals
discount oakley sunglasses
vans outlet
coach outlet online
pandora charms outlet
cheap ugg boots
fred perry shirts
oakley sunglasses outlet
adidas yeezy
canada goose coats
coach outlet online
adidas nmd r1
adidas yeezy
ugg boots
coach outlet online
fitflop sandals
moncler jacket
canada goose jackets
ugg boots
bottes ugg
louboutin outlet
burberry handbags
polo ralph lauren outlet online
ray ban sunglasses discount
cheap jordan shoes
louis vuitton outlet online
ugg boots
fitflops sale
nike outlet store
michael kors outlet online
moncler outlet online
adidas shoes
oakley sunglasses outlet
moncler uk
pandora charms sale
the north face jackets
coach outlet online
ralph lauren
moncler jackets
kate spade handbags
canada goose
hermes bags
cheap jordan shoes
canada goose outlet store
caiting2018327
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|3D数字艺术论坛 ( 沪ICP备14023054号 )

GMT+8, 2024-3-29 02:15

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表