【Unity小技巧】图片使用的一些常见问题

news2024/12/24 21:50:57

文章目录

  • 前言
  • Button不规则按钮点击空白区域不响应点击事件
    • 1. 设置资源参数
    • 2. 代码设置按钮Image的alphaHitTestMinimumThreshold
    • 3. 解释:
    • 4. 效果
  • Unity Image 原图比例控制
    • 方法一 Preserve Aspect
      • 1. 设置勾选Preserve Aspect(保持长宽比),控制图片渲染保持本身比例,它会根据rectTranform 的width 和 height 计算能保持比例的最大渲染尺寸。
      • 2. 效果
      • 3. 代码控制
    • 方法二 Aspect Ratio Fitter
      • 1. 添加Aspect Ratio Fitter组件
      • 2. height controls width的效果,其他效果可以自行去测试
  • 使图片拉伸不变形
    • 第一步:打开Sprite Editor
    • 第二步:按住图片边缘上的绿色小点,往中间拖
    • 第三步:在image中,将Image Type中的Simple改为Sliced(已切片)。
  • 参考
  • 完结

前言

图片无疑在游戏中是非常常用的,但是不注意也会遇到很多问题,这篇文章就是记录我踩的很多图片坑,总结出来,希望对大家有帮助

Button不规则按钮点击空白区域不响应点击事件

我们在制作UGUI的时候经常会遇到需要精准点击不规则按钮或有部分透明区域的按钮的情况,但如果是正常创建Button的话,空白区域也会响应点击事件,因为我们的图片基本都是占用的矩形区域,如下:
在这里插入图片描述
这时候我们就能通过设置一些参数,来不响应透明区域的点击

1. 设置资源参数

开启资源的Read/Write Enabled
在这里插入图片描述

2. 代码设置按钮Image的alphaHitTestMinimumThreshold

获取按钮控件下的Image脚本,设置Image脚本的alphaHitTestMinimumThreshold参数

public class ButtonTest : MonoBehaviour
{
    private Image btnImage;
    // Start is called before the first frame update
    void Start()
    {
        btnImage = GetComponent<Image>();
        btnImage.alphaHitTestMinimumThreshold = 0.5f;
    }
}

3. 解释:

当设置了 alphaHitTestMinimumThreshold 后,它会影响View的点击测试。具体来说,如果一个View的 alpha 值低于这个阈值,那么即使它在屏幕上显示出来,它也不会响应点击事件。这个特性可以用于在一些特定的场景中,提高用户体验,比如当某个View的透明度很低时,可能希望用户不能点击它,这时就可以利用这个属性来实现。

需要注意的是,这个属性在不同的Android版本中可能会有不同的行为,因此在使用时需要仔细测试和考虑兼容性。

4. 效果

在这里插入图片描述

Unity Image 原图比例控制

Image图片在使用的时候,我们总希望它保持本身比例,这样美术图片就不会变形了。
比如一个图片被压缩了
在这里插入图片描述

方法一 Preserve Aspect

1. 设置勾选Preserve Aspect(保持长宽比),控制图片渲染保持本身比例,它会根据rectTranform 的width 和 height 计算能保持比例的最大渲染尺寸。

在这里插入图片描述

2. 效果

在这里插入图片描述
如图中,图片比例是1:1,rectTranform的width大于height,因此渲染尺寸的height为rectTransform的height。

渲染高度就无法填充整个width。所以左右有空白。

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

3. 代码控制

[SerializeField] private Image ItemSprite; // 物品图像的引用

ItemSprite.preserveAspect = true;

方法二 Aspect Ratio Fitter

1. 添加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为基准,图片会以最小大小,覆盖父物体,可以做背景图片

2. height controls width的效果,其他效果可以自行去测试

在这里插入图片描述

使图片拉伸不变形

如果经常做对话框之类的,经常就会遇到这个问题

【解决前效果】
在这里插入图片描述

【解决后效果】
在这里插入图片描述

解决方法:

第一步:打开Sprite Editor

在这里插入图片描述

第二步:按住图片边缘上的绿色小点,往中间拖

在这里插入图片描述
拖成如下效果,其中中间绿色框围成的区域就是变形的区域。
在这里插入图片描述

点击Apply保存。

第三步:在image中,将Image Type中的Simple改为Sliced(已切片)。

在这里插入图片描述

最后调节Width和Height的参数即可

参考

【文章】https://blog.csdn.net/qq_18809975/article/details/117161624

完结

赠人玫瑰,手有余香!如果文章内容对你有所帮助,请不要吝啬你的点赞评论和关注,以便我第一时间收到反馈,你的每一次支持都是我不断创作的最大动力。当然如果你发现了文章中存在错误或者有更好的解决方法,也欢迎评论私信告诉我哦!

好了,我是向宇,https://xiangyu.blog.csdn.net

一位在小公司默默奋斗的开发者,出于兴趣爱好,于是最近才开始自习unity。如果你遇到任何问题,也欢迎你评论私信找我, 虽然有些问题我可能也不一定会,但是我会查阅各方资料,争取给出最好的建议,希望可以帮助更多想学编程的人,共勉~
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1222673.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

docker删除镜像命令

在Docker中删除镜像的命令是 docker rmi。这个命令用于删除一个或多个Docker镜像。使用这个命令时&#xff0c;你需要指定要删除的镜像的ID或名称。以下是一些常用的用法&#xff1a; 删除单个镜像&#xff1a; docker rmi [IMAGE_ID或REPOSITORY:TAG]例如&#xff0c;如果你知…

【OpenAI开发者大会,全新大模型它来了,价格大跌...】

继今年春天发布 GPT-4 之后&#xff0c;OpenAI 又创造了一个不眠夜。 过去一年&#xff0c;ChatGPT 绝对是整个科技领域最热的词汇。 北京时间 11 月 7 日凌晨 02:00&#xff0c;OpenAI 的首次 DevDay 开发者日活动正式开始。Keynote 主论坛环节由 Sam Altman 主讲并在油管现…

Reflect的作用,target,property,value,receiver代表啥

1.真的proxy let target {name:张三} let handler {get(target,property,receiver){console.log(1,target,2,property,3,receiver)return Reflect.get(target,property,receiver)},set(target,property,value,receiver){console.log(a,target,b,property,c,value,d,receiver)…

vue3安装vue-router

环境 node 18.14.2 yarn 1.22.19 windows 11 vite快速创建vue项目 参考 安装vue-touter 官网 yarn add vue-router4src下新建router文件夹&#xff0c;该文件夹下新建index.ts // router/index.ts 文件 import { createRouter, createWebHashHistory, RouterOptions, Ro…

【139.单词拆分】

目录 一、题目解析二、算法原理三、代码实现 一、题目解析 二、算法原理 三、代码实现 class Solution { public:bool wordBreak(string s, vector<string>& wordDict) {int n s.size();unordered_set<string> hash;for (auto x : wordDict) hash.insert(x);…

动态sql行转列

动态sql行转列 介绍案例转之前转之后 注意 介绍 本篇介绍 根据 时间格式化后行转列的案例讲解动态sql案例的初学 案例 --设置一个动态变量 赋予初始值 SET sql NULL;--获取规范化后需要用到的行头列表 SELECT GROUP_CONCAT(CONCAT(--注意1MAX(IF(date ", date, "…

Eclipse使用配置tomcat服务:Server配置

目标&#xff1a; 在Eclipse中&#xff0c;默认会把Web项目放到Eclipse的工作空间下 的.metadata\.plugins\org.eclipse.wst.server.core\tmp0(或者是tmp1)\wtpwebapps\下 &#xff0c;如果现在Eclipse中有名为imsmanagere的项目&#xff0c;将它按以前的方式部署到服务器上&am…

揭示CDN加速的局限性与探讨其小众化原因

在网络加速领域&#xff0c;CDN&#xff08;内容分发网络&#xff09;被认为是提升性能的关键技术之一。然而&#xff0c;尽管其在某些方面表现出色&#xff0c;CDN在广泛应用中仍然相对小众。本文将从CDN加速的局限性出发&#xff0c;深入探讨为何这项技术尚未迎来大规模的应用…

【网络安全】伪装IP网络攻击的识别方法

随着互联网的普及和数字化进程的加速&#xff0c;网络攻击事件屡见不鲜。其中&#xff0c;伪装IP的网络攻击是一种较为常见的攻击方式。为了保护网络安全&#xff0c;我们需要了解如何识别和防范这种攻击。 一、伪装IP网络攻击的概念 伪装IP网络攻击是指攻击者通过篡改、伪造I…

天猫精灵/小爱同学+巴法云+Openwrt控制局电脑/群晖开关机

天猫精灵/小爱同学巴法云Openwrt控制局电脑/群晖开关机 事情的起因实战环境开始发车1.天猫精灵/小爱同学 连接 八法云 2.openwrt3.docker环节注意:sshpass 要先使用 ssh命令登陆一下你要唤醒或者远程关机的设备,不然可能因为一个登陆提示你是否登陆的yes/no导致程序没有反应,然…

DeepMind发布新模型Mirasol3B:更高效处理音频、视频数据

Google DeepMind日前悄然宣布了其人工智能研究的重大进展&#xff0c;推出了一款名为“Mirasol3B”的新型自回归模型&#xff0c;旨在提升对长视频输入的理解能力。该新模型展示了一种颠覆性的多模态学习方法&#xff0c;以更综合和高效的方式处理音频、视频和文本数据。 Googl…

Mysql数据备份 —xtrabackup

一 备份介绍 ### 优点&#xff1a; 1. **在线备份&#xff1a;** XtraBackup 支持在线备份&#xff0c;这意味着你可以在 MySQL 服务器运行的同时进行备份&#xff0c;而无需停止数据库服务。这对于生产环境中的数据库是非常关键的&#xff0c;因为可以最小化停机时间。 2. **…

算法:记忆化搜索

文章目录 记忆化搜索斐波那契数列 例题不同路径最长递增子序列猜数字大小矩阵中的最长递增路径 记忆化搜索的原理其实很简单&#xff0c;简单来说就是对暴力搜索的一些优化&#xff0c;因此整体上来讲难度不高 记忆化搜索 所谓记忆化搜索&#xff0c;直白来说就是一个带有备忘…

MATLAB中plotmatrix函数用法

目录 语法 说明 示例 使用两个矩阵输入创建散点图矩阵 使用一个矩阵输入创建散点图矩阵 指定标记类型和颜色 创建并修改散点图矩阵 plotmatrix函数的功能是创建散点图矩阵。 语法 plotmatrix(X,Y) plotmatrix(X) plotmatrix(___,LineSpec) plotmatrix(ax,___) [S,AX,B…

一次显著的接口性能优化,从10s优化到0.9s

最近在登录项目后台的时候&#xff0c;发现当我输入账号和密码后&#xff0c;竟然就卡在了 Loading 页面。。 加载了10S才进后台 等了足足 10S 才进去后台&#xff01; 通过 F12&#xff0c;打开 Network 网络请求一看&#xff0c;竟然是因为有两个接口返回的数据太慢了&#…

挑战单芯片NOA,这款“All in one”方案或将改变主流市场走向

随着降本增效、电子架构升级&#xff08;尤其是跨域计算、多域融合等概念&#xff09;以及供应链减复&#xff08;降低电子物料的SKU&#xff09;的需求愈加明确&#xff0c;对于车载计算赛道&#xff0c;也带来新的变化。 比如&#xff0c;去年9月&#xff0c;英伟达率先发布下…

群晖邮件设置,错误535 Authenticate failed问题

设置邮件通知或者报警很方便&#xff0c;群晖内部内置这个功能。在设置的时候遇到错误535 Error&#xff1a;authentication failed。 原因是&#xff1a;这个错误就是认证失败&#xff01; 但是相信很多的同学明明用户名和密码填的是对的&#xff0c;就是说认证失败&#xf…

RTLS 颠覆制造业方式之——库存管理

跟踪库存对于每个行业&#xff08;不仅仅是制造业&#xff09;来说都是一项技术挑战。然而&#xff0c;在计划外停机每小时可能造成数十万美元损失的环境中&#xff0c;智能库存尤其重要&#xff0c;而这通常是由于一两个物体丢失造成的。 1.自动化库存报告 RTLS 提供的最有价…

[HTML]Web前端开发技术1,meta,HBuilder等——喵喵画网页

希望你开心&#xff0c;希望你健康&#xff0c;希望你幸福&#xff0c;希望你点赞&#xff01; 最后的最后&#xff0c;关注喵&#xff0c;关注喵&#xff0c;关注喵&#xff0c;大大会看到更多有趣的博客哦&#xff01;&#xff01;&#xff01; 喵喵喵&#xff0c;你对我真的…

九. Linux网络命令

网络命令write 网络命令wall 网络命令ping 首先&#xff0c;ping程序会向域名服务器(DNS)发送请求&#xff0c;解析域名www.baidu.com的IP地址。DNS返回域名的一个别名www.a.shifen.com以及对应的IP地址183.2.172.185。之后ping程序开始向这个地址发送请求报文&#xff0c;每1s…