【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;
        }
    }

结果

相关推荐
乌暮1 小时前
Spring AOP 与 Spring 事务:用大白话彻底理解原理与实践
java·数据库·spring boot·后端·sql·学习·spring
YDS8292 小时前
Small Spring IOC篇:容器事件及其监听器
java·spring
金銀銅鐵2 小时前
带您看懂字节码指令(三):一行加法里有什么
java·jvm
文丑颜不良啊2 小时前
LeetCode2921~2940题目解析
java·leetcode
暴走约伯3 小时前
【VFX工具链源码拆解 09】终极工业化闭环:基于 ID 规则驱动的全自动场景建档、骨骼挂载与男转女场景迁移
unity·c#·游戏引擎·材质
北漂人Java3 小时前
基于 Spring AI Alibaba WorkFlow 构建 Java 生产级 AI Agent
java·人工智能·spring
用户112936112193 小时前
编译全绿,上线就崩:MyBatis 五层方法名大小写埋下的坑
java
文丑颜不良啊4 小时前
LeetCode2901~2920题目解析
java·leetcode
码云社区4 小时前
能碳管理系统开发要关注什么?能源数据、统计口径与AI分析的衔接
java·人工智能·ai·能源·能源管理系统·能碳管理系统·能碳管理系统源码
Flynn Liang4 小时前
Agentic 工作流:子代理、Supervisor 与人工介入
java·langchain·多智能体·supervisor·agentic·langchain4j