查看: 6565|回复: 5
打印 上一主题 下一主题

[教程] 【转载】NGUI 官网示例7-- ScrollView讲解(三)

[复制链接]

955

主题

164

听众

7万

积分

版主

Rank: 7Rank: 7Rank: 7

纳金币
59338
精华
28

活跃会员 荣誉管理 突出贡献 优秀版主 论坛元老

跳转到指定楼层
楼主
发表于 2012-10-11 11:18:33 |只看该作者 |倒序浏览
在这里官方例子中的最下角,有两个元件,一个是用于控制item中心显示的check box,还有一个是实现窗口旋转的功能。还有右上角的Logo图标,鼠标点击它是会自动弹出来,鼠标移开后又会自动弹回原位。现在我们来分别实现它。



在Camera下创建一个panel。并在这个Panel下创建一个空游戏对象,并命名为Anchor-Bottom,reset一下,为其添加一个Anchor(Ngui->Attach a Anchor),把UIAnchor组件中的Side参数设置成Bottom。在这个Anchor-Bottom下创建一个Checkbox,参数如下:





选择checkbox下的background,设置其Color Tint为木黄色;选择checkmark,设置其Color Tint颜色为绿色,Label的文本为Center on Item,最终效果如图所示:





选择Panel-Window,为其添加一个高亮背景。在Panel-window下创建一个SlicedSprite元件,参数为Template为Sliced Sprite,Sprite为Row Outline。创建完成之后设置其大小为x158,y258,ColorTint 为R32,G22,B12;调整它的位置,最终效果如图所示:





设置Checkbox。首先选择checkbox,把UICheckbox组件中的Starts Checked取消掉。为checkbox添加一个CheckboxComponent组件(Component->NGUI->Interaction-> CheckboxComponent),把UIGrid赋值给该组件的Target;再添加一个CheckboxCompo nent,把SlicedSprite(Row Outline)赋值给它的Target,这样可以打开或者关闭该对象。点击播放,现在可以通过checkbox控制那个高亮背景的显示与关闭,但是定位还没有实现,如图所示:







选择UIGrid,为其添加一个CenterOnChild组件(Component-> NGUI -> Interaction -> CenterOnChild),并关闭它,(这里有一个细节,checkbox controller component在控制target对象的组件开关时,它只对第一个组件进行控制,所以,我们要把UICenterOnChild放在UIGrid组件之前,这个时候你可能需要先删除UIGrid,然后再添加CenterOnChild,再添加UIGrid,再把UIGrid对象重新赋值给Checkbox的Checkbox Control Component中的target中)如图所示:





使用Ctrl+D复制Anchor-Bottom,改名为Anchor-BottomRight,删除掉其下的checkbox,把Side设置成BottomRight。接着,为其添加一个Button元件,并设置它的参数和调整它的位置,使用该按钮来旋转窗口,如图所示:





先选择WindowRoot,为其添加一个TweenRotation组件(Component-> NGUI -> Tween -> Rotation),同时关闭该组件。并设置该组件的属性(这样便给WindowRoot设置了一个旋转的Tween动画,我们将用按钮来触发)如图所示:





选择Button,为其添加一个ButtonTween组件(Component-> NGUI -> Interaction -> Button Tween),把WindowRoot赋值给该组件的Target,PlayDirection为Toggle(可以实现翻转,不然你用forward只能点一次了,就再也回不去,可以试试)。注意,播放Animation用ButtonPlayAnimation组件,播放Tween动画用ButtonTween组件。如图所示:





现在点击播放,点击ClickMe按钮,看窗口旋转起来了,再点一下Clickme按钮。又转回来了!



下面来实现Logo的弹出与弹入效果。使用Ctrl+D复制一个Anchor-BottomRight,并把名字改为Anchor-TopRight并把下面的Button删除掉。接着把Side设置成TopRight。如图所示:





创建一个Sprite组件,其参数为





为该sprite添加一个TweenPosition组件(Component->NGUI->Tween->position),设置该组件的参数为,并关闭该组件:





为Sprite添加一个Button Tween组件(Component->NGUI->Interaction -> Button Tween)。设置参数为TweenTarget为Sprite,Trigger为OnClick,PlayDirection为Toggle,如图所示:





最后,为该Sprite添加一个Collider(NGUI->Attach a Collider)。点击播放,Logo的弹出和弹入效果实现了!
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

may    

8830

主题

81

听众

7万

积分

首席设计师

Rank: 8Rank: 8

纳金币
52336
精华
343

最佳新人 热心会员 灌水之王 活跃会员 突出贡献 荣誉管理 论坛元老

沙发
发表于 2012-11-30 21:09:50 |只看该作者
支持楼主的帖子
回复

使用道具 举报

6

主题

1

听众

1473

积分

助理设计师

Rank: 4

纳金币
126
精华
1
板凳
发表于 2013-5-7 18:38:05 |只看该作者
连续看了这三教程~~~受益匪浅!~~非常感谢楼主无私分享!!!
回复

使用道具 举报

12

主题

1

听众

609

积分

初级设计师

Rank: 3Rank: 3

纳金币
309
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

地板
发表于 2013-5-8 14:16:06 |只看该作者
感谢楼主分享!!!
回复

使用道具 举报

1

主题

1

听众

88

积分

设计初学者

Rank: 1

纳金币
290
精华
0

活跃会员 灌水之王

5#
发表于 2013-7-30 14:36:31 |只看该作者
非常感谢楼主,基本都成功了。好像遗漏了Panel ClipView的clipping应选择为Soft Clip没有提到。
另外我有个问题,为什么我的画面刷新有残影呢?
如附件图片

error.jpg (93.51 KB, 下载次数: 804)

残影图片

残影图片

回复

使用道具 举报

0

主题

2

听众

4092

积分

中级设计师

Rank: 5Rank: 5

纳金币
530
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

6#
发表于 2014-5-14 15:20:27 |只看该作者

我也来支持下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2024-11-10 15:26 , Processed in 0.103415 second(s), 31 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部