【Unity小工具】Image组件宽度、高度自适应

  1. Unity开发中,用同一个Image进行动态加载不同尺寸的图片,在显示上会有形变
  2. 此工具可以进行Image的宽度、高度自适应

实现原理

  • 获取Image原始尺寸(sizeDelta)
  • 获取图片原始尺寸(spriteSizeDelta)
  • 公式: spriteSizeDelta.x/spriteSizeDelta.y = sizeDelta.x / sizeDelta.y

代码:

csharp 复制代码
 public static class ImageKit
    {
        // 根据宽度自适应 
        public static void AutoAdjustWeight(this Image image)
        {
            var sizeDelta = image.rectTransform.sizeDelta;
            var spriteSizeDelta = image.sprite.rect.size;
            sizeDelta.y = sizeDelta.x * (spriteSizeDelta.y / spriteSizeDelta.x);
            image.rectTransform.sizeDelta = sizeDelta;
        }

		// 根据高度自适应
        public static void AutoAdjustHeight(this Image image)
        {
            var sizeDelta = image.rectTransform.sizeDelta;
            var spriteSizeDelta = image.sprite.rect.size;
            sizeDelta.x = sizeDelta.y * (spriteSizeDelta.x / spriteSizeDelta.y);
            image.rectTransform.sizeDelta = sizeDelta;
        }
    }

结果

相关推荐
庄周的大鱼12 分钟前
分析@TransactionalEventListener注解失效
java·spring·springboot·事务监听器·spring 事件机制·事务注解失效解决
史蒂芬_丁34 分钟前
C++深度拷贝例子
java·开发语言·c++
云烟成雨TD1 小时前
Spring AI Alibaba 1.x 系列【4】ReAct 范式与 ReactAgent 核心设计
java·人工智能·spring
mxwin1 小时前
Unity Shader SRP深入理解内置渲染管线与 URP/HDRP 的底层架构差异
unity·游戏引擎·单一职责原则
「QT(C++)开发工程师」1 小时前
C++11三大核心特性深度解析:类型特征、时间库与原子操作
java·c++·算法
乐分启航1 小时前
SliMamba:十余K参数量刷新SOTA!高光谱分类的“降维打击“来了
java·人工智能·深度学习·算法·机器学习·分类·数据挖掘
yoothey2 小时前
Java字节流与字符流核心笔记(问答+考点复盘)
java·开发语言·笔记
black方块cxy3 小时前
实现一个输入框多个ip以逗号分隔最多20组,且ip不能重复
java·服务器·前端
23.3 小时前
【Java】char字符类型的UTF-16编码解析
java·开发语言·面试
怒放吧德德3 小时前
Spring Boot实战:InfluxDB 2.x简单教程
java·spring boot·后端