Unity中使用UGUI与ScrollView的练习

一、相关组件

  • ScrollRect
  • Mask
  • Grid Layout Group
  • Scrollbar

二、步骤

1、创建一个Panel,命名为ScrollRect,添加 ScrollRect组件

image

2、在ScrollRect下创建一个子Panel,命名为Grid,添加Grid Layout Group 组件

image

3、在Grid下,创建一个Image,按Ctrl+D ,Copy出多个Image

image

4、在Scene视图,可以看到Image的排列(注意:排列成了两行)

image

5、让Grid下的Image排列成一行;做法:拉伸Grid的长度,让它变长

image

6、在Game视图,看到Image已经超出了Scroll Rect

image

7、给Scroll Rect添加Mask组件

image

8、添加完Mask组件之后,Image就不再超出了,但此时仍然不能Drag它

image

9、设置参数

image

10、设置完参数之后,就能Drag了

Scroll View-1

2.2 添加Scrollbar

11、创建一个Panel,命名HScrollbar,添加 Scrollbar 组件

image

12、在HScrollbar下 创建一个空的GameObject,命名Stretch ,添加 Rect Transform组件,设置Stretch为All

image

13、在Stretch 下 创建一个Image,命名 Handler

image

14、为HScrollbar设置好Handler参数

image

15、同时为Scrollbar设置Horizontal Scrollbar

image

三、Scroll View 效果

Scroll View

四、补充

本周(2014年11月的最后一周),Unity4.6正式版发布了,我在新版本里用上面同样的步骤试用了ScrollView是可行的,但也发现有几个地方可能会让初学者迷惑,这里指出。

步骤1:

默认创建一个Panel是Stretch的,没有Width和Height,也就是它会撑满全屏幕

image

我们可以手工缩放它的大小成我们需要的,但此时它具有Anchor 特性,就是会根据屏幕来拉伸

image

所以建议,把panel的布局方式改一下,这里我选择的是Middle – Center,这样就可以控制Panel的大小为绝对值了

image

步骤2:

有可能你创建出来的Scroll,滑动不了内容。表现为:明明Grid下有很多Image,但它就是只能滑动那么一点点。(—!gif工具突然不能录制了!)

这是因为你的Grid的宽度不够!如所下图

image

我知道有两个方法:

方法1、给Grid选择固定列数,比如我有10个child,我就填10,填完之后,Grid Rect的宽度会自动帮你计算出来

image

方法2、自己计算,比如Grid下有10个Image,每个100x100,它们之前的spacing是x:10,y:10,那么我可以这样填

image

总之就是要把Grid下所有的Item都在同一直线上

image

image

步骤2.2

我在4.6正式版中,发现可以直接创建一个Scrollbar,就不需要手工的配置了,比较方便。

scrollview

附注:

有同学发现在unity5.0 beta下UI的mask组件有bug[表现为:给panel添加mask后,chid组件全部不可见,可能是mask把它们alpha设置成0了]

同样的,还有同学在做背包时,发现click事件很容易被当作scroll事件,所以建议大家在做UI时,更新到4.6的正式版。



原文地址:

http://www.cnblogs.com/zhaoqingqing/p/3973167.html?utm_source=tuicool



  • 2
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
要实现Unity UGUIScrollView滑动放大,其他的缩小,可以按照以下步骤进行操作: 1. 创建一个ScrollView,用于显示内容,并设置合适的大小和位置。 2. 在ScrollView创建一个Content对象,用于放置所有需要显示的子对象,并设置Layout Group组件,以确保内容按照一定的布局排列。 3. 在每个子对象上添加一个自定义的脚本,用于控制子对象的缩放和位置。脚本需要包含以下几个要点: a. 监听ScrollView滑动事件,获取当前的滑动位置。 b. 根据当前滑动位置,计算每个子对象在滑动过程应该设置的缩放比例。例如,距离居的子对象应该更大,而距离边缘的子对象应该更小。 c. 根据计算得到的缩放比例,分别对每个子对象进行缩放设置。可以使用RectTransform的scale属性来实现缩放功能。 d. 根据子对象的缩放比例和位置信息,将子对象移动到ScrollView的合适位置。可以使用RectTransform的anchoredPosition属性来实现位置调整。 e. 可以根据需要,在脚本添加其他的功能,例如点击子对象时的反应等。 4. 将自定义的脚本添加到所有的子对象上,确保每个子对象都能根据滑动进行缩放和位置调整。 通过以上步骤,我们可以实现在Unity UGUIScrollView滑动过程,距离居的子对象放大,而距离边缘的子对象缩小的效果。具体的缩放比例和位置调整可以根据实际需求进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值