在UGUI - Scroll View中显示Sprite的技巧

本文介绍了在Unity UI中使用SpriteMask确保Sprite不溢出显示范围的方法。通过设置Sprite的MaskInteraction并添加SpriteMask组件,可以有效控制Sprite的可见区域。文章详细说明了配置过程及如何使SpriteMask自适应不同屏幕比例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在UI显示Sprite的两种方法

1. 使用一个独立摄像机,将Sprite读入可视范围里,渲染成Render Texture, 再将Render Texture于UI中的Sprite绑定

2. 在Canvas中使用Screen Space - Camera 模式,将Sprite挂在一个具有RectTransform的根节点下面,作为一个UI单位


方法1 ,是很多项目中常用的,在此不再赘述,但是有诸多问题并且实现方法繁琐,是舍近求远的做法,所以我们用方法2来实现

方法2中遇到的问题

Scroll View中图片是可以被拖动的,并且有个显示范围,直接拖动,会将图片显示到范围外面


Sprite会显示到背景框区域外面


解决方案:使用Sprite Mask

步骤:

1. 设置Sprite的Mask Interaction 为Visible Inside Mask



2. 添加Sprite Mask

3. 设置Sprite Mask的Custom Range


此处用的UIMask是Unity默认的透明图片,建议自己做个会比较好

4. 调整Sprite Mask的大小 - 调整Scale值


橘红色圈住的范围就是Sprite可显示的范围

5. 适配不同屏幕比例



只要 Canvas Scalar中的 Reference Pixel Per Unit 与Texture设定中的Sprite Mode/Pixel Per Unit 一致,之前设定过的Scale值就会通过UGUI自动适应不同的屏幕比例


运行结果:


SpriteMask内的Sprite不会再溢出了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值