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

结果

相关推荐
甲枫叶3 分钟前
【claude+weelinking产品经理系列16】数据可视化——用图表讲述产品数据的故事
java·人工智能·python·信息可视化·产品经理·ai编程
苡~1 小时前
【openclaw+claude】手机+OpenClaw+Claude实现远程AI编程系列大纲
java·前端·人工智能·智能手机·ai编程·claude api
毕设源码-赖学姐1 小时前
【开题答辩全过程】以 基于java电脑售后服务管理系统设计为例,包含答辩的问题和答案
java·开发语言
我是秦始皇v我5001 小时前
CSDN:Java开发者的成长沃土
java
SoulruiA1 小时前
超容易理解+模版套路解决LeetCode 前序+中序、中序+后序、前序+后序遍历构造树问题
java·算法·力扣
蜗牛^^O^2 小时前
如何负责一个系统的稳定性
java
一只叫煤球的猫2 小时前
别再把 Lambda 当匿名类:这 9 类坑你一定踩过
java·后端·面试
知识即是力量ol2 小时前
微服务架构:从入门到进阶完全指南
java·spring cloud·微服务·nacos·架构·gateway·feign
Javatutouhouduan2 小时前
RocketMQ是怎么保存偏移量的?
java·消息队列·rocketmq·java面试·消息中间件·后端开发·java程序员