Unity Image 原图比例控制

Image图片在使用的时候,我们总希望它保持本身比例,这样美术图片就不会变形了。

一、Preserve Aspect

这个选项可以控制图片渲染保持本身比例。

它会根据rectTranform 的width 和 height 计算能保持比例的最大渲染尺寸。

如图中,图片比例是1:1,rectTranform的height大于width ,因此渲染尺寸的width为rectTransform的width。

渲染高度就无法填充整个height。所以上下有空白。

这个使用有问题就是,如果子物体以image的左上为锚点。那么位置可能就会有偏差了。

 

二、Aspect Ratio Fitter

这个控制的是recttranform的size。

width Controls height 就是通过width为基准,用aspectRatio计算height,height自身不能调整

height controls width 就是通过height为基准,用aspectRatio计算width,width自身不能调整

Fit InParent是以父物体的size为基准,计算widht和height最大值,和Preserve Aspect计算方式差不多,但是修改了rectTransform的size,而且锚点是随父物体缩放的。图片永远在父物体内部

Envelope Parent 是以父物体的size为基准,图片会以最小大小,覆盖父物体,可以做背景图片。

 

### 实现 UnityImage 组件的缩放效果 在 Unity 的 UI 系统中,`Image` 组件支持多种方式来实现缩放效果。为了确保图像在不同场景下能够正确显示并保持视觉质量,开发者可以利用 `Preserve Aspect` 属性以及配合其他组件共同完成这一目标。 当希望调整 `Image` 组件内的图片大小而不失真时,可以通过勾选属性面板里的 `Preserve Aspect` 来维持原图的比例不变[^4]。这使得即使改变了控件本身的尺寸,内部展示的内容依旧能按照原本的设计意图呈现出来。 对于更复杂的交互需求,比如创建具有动态变化特性的界面元素——例如带有缩放动画效果的按钮或图标——则可能需要用到 `CanvasScaler` 和脚本编程相结合的方式。通过编写简单的 C# 脚本来控制对象的变换矩阵(Transform),可以在运行期间灵活地修改其尺度因子,从而达到预期的效果。 另外,在某些情况下,如果想要制作可滑动查看大图的功能,则应考虑集成 `ScrollRect` 组件到布局当中去。具体操作是在编辑器里配置好相应的参数之后,再把含有该组件的对象关联至待处理的目标 `Image` 上面;同时设定合适的 `scaleDifference` 值以适应不同的设备屏幕分辨率差异[^2]。 ```csharp using UnityEngine; using UnityEngine.UI; public class ScaleExample : MonoBehaviour { public float scaleFactor = 1.5f; // 放大倍数 void Start() { RectTransform rectTransform = GetComponent<RectTransform>(); Vector3 newSize = new Vector3(rectTransform.rect.width * scaleFactor, rectTransform.rect.height * scaleFactor, 0); rectTransform.sizeDelta = newSize; } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值