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

文章目录

  • 前言
  • 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。如果你遇到任何问题,也欢迎你评论私信找我, 虽然有些问题我可能也不一定会,但是我会查阅各方资料,争取给出最好的建议,希望可以帮助更多想学编程的人,共勉~
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

QCheckBox样式表

1、QCheckBox选择器和指示器类型 选择器类型描述QCheckBoxQCheckBox 的默认选择器。QCheckBox::indicatorQCheckBox 的指示器,即复选框的标记部分。QCheckBox::indicator:checkedQCheckBox 选中状态下的指示器。QCheckBox::indicator:uncheckedQCheckBox 未选中状态下的指示器…

leetcode系列(双语)003——GO无重复字符的最长子串

文章目录 003、Longest Substring Without Repeating Characters个人解题官方解题扩展 003、Longest Substring Without Repeating Characters 无重复字符的最长子串 Given a string s, find the length of the longest substring without repeating characters. 给定一个字符…

深信服AC密码认证(外部认证:LDAP认证)

拓扑图 搭建好自己AD域服务器&#xff0c;我搭建的服务器域名叫做liyanlongyu.com&#xff0c;如何搭建这里我就不做演示了 一.在AC中添加自己AD域服务器 二.添加LDAP认证策略 验证&#xff1a; 未认证发现&#xff0c;无法上网 点击网页&#xff0c;弹出认证页面 认证后&…

硬件工程师基础能力课

第一课时--基本定理、电阻、电容等 首先了解下面几个概念&#xff0c;基尔霍夫定理&#xff1a;KCL & KVL&#xff0c;叠加定理&#xff0c;戴维南定理&#xff08;电压源等效&#xff09;和诺顿定理&#xff08;电流源等效&#xff09;、奈奎斯特采样定理。 上面说的这些东…

微机原理_12

一、单项选择题(本大题共15小题,每小题3分&#xff0c;共45分。在每小题给出的四个备选项中&#xff0c;选出一个正确的答案。〕 十进制正数56的 8位二进制补码是()。 A. 00011001 B. 10100110 C. 10011001 D. 00100110 若栈顶的物理地址为20100H&#xff0c;当执行完指令PUSH…

数据结构初阶leetcodeOJ题(二)

目录 第一题 思路&#xff1a; 第二题 思路 第三题 描述 示例1 思路 总结&#xff1a;这种类似的题&#xff0c;都是用快慢指针&#xff0c;相差一定的距离然后输出慢指针。 第一题 给你一个链表的头节点 head 和一个整数 val &#xff0c;请你删除链表中所有满足 Node.val…

2023全新付费进群系统源码 带定位完整版 附教程

这源码是我付费花钱买的分享给大家&#xff0c;功能完整。 搭建教程 Nginx1.2 PHP5.6-7.2均可 最好是7.2 第一步上传文件程序到网站根目录解压 第二步导入数据库&#xff08;58soho.cn.sql&#xff09; 第三步修改/config/database.php里面的数据库地址 第四步修改/conf…

【漏洞复现】泛微e-Weaver SQL注入

漏洞描述 泛微e-Weaver&#xff08;FANWEI e-Weaver&#xff09;是一款广泛应用于企业数字化转型领域的集成协同管理平台。作为中国知名的企业级软件解决方案提供商&#xff0c;泛微软件&#xff08;广州&#xff09;股份有限公司开发和推广了e-Weaver平台。 泛微e-Weaver旨在…

LeetCode(28)盛最多水的容器【双指针】【中等】

目录 1.题目2.答案3.提交结果截图 链接&#xff1a; 盛最多水的容器 1.题目 给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多的水…

Java中如何通过路径表达式找值:XPath和JsonPath以及SpEL详解及对比

大家好&#xff0c;我是G探险者。 我们编程时&#xff0c;在前后端数据交互和传输过程中&#xff0c;往往需要对报文中的某个字段或者某个标签的值进行解析读取&#xff0c;报文通常是以json或者xml作为数据交换格式&#xff0c;而json和xml这两种格式的报文结构都是具备一定的…

CI/CD -gitlab

目录 一、常用命令 二、部署 一、常用命令 官网&#xff1a;https://about.gitlab.com/install/ gitlab-ctl start # 启动所有 gitlab 组件 gitlab-ctl stop # 停止所有 gitlab 组件 gitlab-ctl restart # 重启所有 gitlab 组件 gitlab-ctl statu…

比Postman强在哪里

Postman的受众对象主要是广大开发人员&#xff0c;调测使用&#xff0c;它并不能完全满足专业测试人员需求&#xff0c;而自动化测试平台可以 1&#xff0c;Postman&#xff0c;Jmter是单机版软件&#xff0c;类似打游戏你和电脑PK&#xff0c;而很多时候是要联网和其他人团队作…

软件开发、网络空间安全、人工智能三个方向的就业和前景怎么样?哪个方向更值得学习?

软件开发、网络空间安全、人工智能这三个方向都是当前及未来的热门领域&#xff0c;每个领域都有各自的就业前景和价值&#xff0c;以下是对这三个方向的分析&#xff1a; 1、软件开发&#xff1a; 就业前景&#xff1a;随着信息化的加速&#xff0c;软件开发的需求日益增长。…

【PyQt小知识 - 3】: QComboBox下拉框内容的设置和更新、默认值的设置、值和下标的获取

QComboBox 内容的设置和更新 from PyQt5.QtWidgets import * import sysapp QApplication(sys.argv)mainwindow QMainWindow() mainwindow.resize(200, 200) # 设置下拉框 comboBox QComboBox(mainwindow) comboBox.addItems([上, 中, 下])button QPushButton(更新, main…

Django学习日志03

数据的增删改查&#xff08;insert update delete select&#xff09; 1. 用户列表的展示 # 把数据表中得用户数据都给查询出来展示在页面上 添加数据 id username password gender age action …

Web与DNS综合实验

目录 题目&#xff1a; 步骤一&#xff1a;准备工作 步骤二&#xff1a;在server端搭建简单网页 步骤三&#xff1a;node1端的DNS解析配置 步骤五&#xff1a;node2端进行测试。 题目&#xff1a; 1.打开3个主机&#xff0c;server、node1、node2 2.server为web主机建立网…

如何将 Docsify 项目部署到 CentOS 系统的 Nginx 中?

文章目录 1. 介绍2. 准备工作3. 将 Docsify 项目上传至服务器4. 在服务器上安装 Node.js5. 在服务器上运行 Docsify6. 配置 Nginx 反向代理7. 访问 Docsify 文档8. 拓展8.1 配置 HTTPS8.2 定制 Docsify 主题8.3 鉴权和访问控制 &#x1f389;如何将 Docsify 项目部署到 CentOS …

​软考-高级-系统架构设计师教程(清华第2版)【第20章 系统架构设计师论文写作要点(P717~728)-思维导图】​

软考-高级-系统架构设计师教程&#xff08;清华第2版&#xff09;【第20章 系统架构设计师论文写作要点&#xff08;P717~728&#xff09;-思维导图】 课本里章节里所有蓝色字体的思维导图

图片标注工具Labelme的安装及使用方法

参考&#xff1a;图像语义分割标注工具labelme制作自己的数据集用于mask-rcnn训练_ZealCV的博客-CSDN博客_语义分割标注工具 在做目标检测任务时&#xff0c;需要用到labelImg进行画框标注&#xff0c;在之前的文章中已经介绍过该工具的使用方法。然而如果是做语义分割的任务时…

Linux命令之查看文件和权限修改操作

目录 查看文件 1. cat --- 将文件中的内容打印在输出设备 2. more --- 分页显示文件内容 3.less ---查看文件内容 4. head -- 查看文件前n行内容 5.tail -- 查看指定文件的后n行内容或实时监测文件 6. wc -- 可计算文件的字节数、字数和列数 文件搜索 1.which --- 获取…