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

结果

相关推荐
QC班长12 小时前
Maven公司私库配置踩坑点
java·服务器·maven·intellij-idea
Makoto_Kimur12 小时前
java开发面试-AI Coding速成
java·开发语言
wuqingshun31415912 小时前
说说mybatis的缓存机制
java·缓存·mybatis
空中海12 小时前
Kubernetes 生产实践、可观测性与扩展入门
java·贪心算法·kubernetes
Devin~Y13 小时前
大厂Java面试实录:Spring Boot/Cloud、Kafka、Redis、K8s 与 Spring AI(RAG/Agent)三轮连环问
java·spring boot·redis·mysql·spring cloud·kafka·kubernetes
bLEd RING13 小时前
SpringBoot3.3.0集成Knife4j4.5.0实战
java
小松加哲13 小时前
Spring MVC 核心原理全解析
java·spring·mvc
Ulyanov14 小时前
《PySide6 GUI开发指南:QML核心与实践》 第二篇:QML语法精要——构建声明式UI的基础
java·开发语言·javascript·python·ui·gui·雷达电子对抗系统仿真
码界筑梦坊14 小时前
357-基于Java的大型商场应急预案管理系统
java·开发语言·毕业设计·知识分享
云烟成雨TD14 小时前
Spring AI Alibaba 1.x 系列【31】集成 Studio 模块实现可视化 Agent 调试
java·人工智能·spring