当前位置: 首页 > news >正文

⭐Unity 控制任意UI的渐隐渐显

使用脚本之前先给要控制的UI加上CanvasGroup组件

解释:

  • 这个脚本使用协程来逐渐改变CanvasGroupalpha值,从而实现渐隐和渐显的效果。

  • Mathf.Lerp函数用于在指定的时间内平滑地从当前透明度过渡到目标透明度。

  • 通过调用FadeInFadeOut方法,你可以在任何时候启动渐显或渐隐效果。

  • 添加了一个currentFadeCoroutine变量来跟踪当前活跃的协程。

  • 在启动新的渐显或渐隐前,检查并停止已有的协程。

  • 在协程中,如果alpha值已经达到目标值(考虑到浮点数精度),则提前结束循环,避免不必要的计算。

  • 渐变结束时确保alpha值精确设置为目标值,并清除协程引用,确保系统资源得到释放。

using System.Collections;
using UnityEngine;public class FadeCanvasGroup : MonoBehaviour
{public CanvasGroup canvasGroup; // 通过Inspector分配public float fadeInDuration = 2.0f; // 渐显持续时间public float fadeOutDuration = 2.0f; // 渐隐持续时间private Coroutine currentFadeCoroutine; // 当前运行的协程void Start(){// 开始时渐显FadeIn();}public void FadeIn(){if (currentFadeCoroutine != null) StopCoroutine(currentFadeCoroutine);currentFadeCoroutine = StartCoroutine(FadeCanvasGroupRoutine(canvasGroup, canvasGroup.alpha, 1, fadeInDuration));}public void FadeOut(){if (currentFadeCoroutine != null) StopCoroutine(currentFadeCoroutine);currentFadeCoroutine = StartCoroutine(FadeCanvasGroupRoutine(canvasGroup, canvasGroup.alpha, 0, fadeOutDuration));}private IEnumerator FadeCanvasGroupRoutine(CanvasGroup cg, float start, float end, float duration){float counter = 0f;while (counter < duration){counter += Time.deltaTime;cg.alpha = Mathf.Lerp(start, end, counter / duration);// 优化:如果已达到目标透明度,提前终止协程if (Mathf.Approximately(cg.alpha, end)) break;yield return null; // 等待一帧}// 确保最终alpha值精确设置cg.alpha = end;currentFadeCoroutine = null; // 清除协程引用}
}

感谢大家的观看,您的点赞和关注是我最大的动力

不定时更新知识点和干货呦~

相关文章:

⭐Unity 控制任意UI的渐隐渐显

使用脚本之前先给要控制的UI加上CanvasGroup组件 解释: 这个脚本使用协程来逐渐改变CanvasGroup的alpha值&#xff0c;从而实现渐隐和渐显的效果。 Mathf.Lerp函数用于在指定的时间内平滑地从当前透明度过渡到目标透明度。 通过调用FadeIn和FadeOut方法&#xff0c;你可以在任…...

web移动前端网页:深度剖析与未来展望

web移动前端网页&#xff1a;深度剖析与未来展望 在数字化浪潮席卷全球的今天&#xff0c;web移动前端网页作为连接用户与数字世界的桥梁&#xff0c;其重要性不言而喻。本文将从四个方面、五个方面、六个方面和七个方面&#xff0c;对web移动前端网页进行深入的剖析和展望&am…...

人脸识别之--计算余弦相似度-android

余弦相似度是比对两个向量是否一致&#xff0c;余弦相似度是通过计算两个向量的夹角余弦值来衡量它们之间的相似度&#xff0c;算出来的值可以直接用作相似度的分数。 公式&#xff1a; 余弦相似度和欧式距离经常用来人脸识别特征对比。 其中&#xff1a; 1、余弦相似度是通…...

C语言王国——数据的内存管理

目录 一、引言 二、整形在内存中的存储 2.1 进制之间的转换 2.1.1 整形的二进制 2.1.2 十进制和二进制 2.1.3 十进制和八进制的转换 2.1.4 十六进制和十进制的转换 2.2 原码&#xff0c;反码&#xff0c;和补码 三、大、小端字节序 3.1 大小端的定义 3.2 为什么会有大…...

Kotlin 协程真的轻量吗?

前言 在官方文档的介绍中,提到了: 协程是轻量的 并给出了一个例子: fun main() = runBlocking {repeat(50_000) {// 启动大量的协程launch {delay...

Cantata 24.04 全新发布:以代码为中心的测试实现革命性升级!

简介 Cantata 24.04于2024年4月发布&#xff0c;以开创性的功能彻底革新了软件测试。此版本的主要功能是以代码为中心&#xff08;Code-Centred&#xff09;的方法&#xff0c;可以更快、更高效地在C/C的代码编辑器中创建单元和集成测试。 Cantata 24.04采用C中的最新标准并全…...

【问题记录】VMware 17.5.1下载VMware tools失败报错的解决方法

一&#xff0c;问题现象 Ubuntu可以上网&#xff0c;但是下载VMware tools失败&#xff0c;报错提示&#xff1a;“连接到更新服务器时发生证书错误。请检查您的Internet设置或联系您的系统管理员。” 下载安装VMware tools&#xff1a; 报错提示&#xff1a; 二&#xff0…...

Android - RadioGroup中多个radiobutton同时被选中问题

问题描述: 动态创建radio button, 并将多个button添加到radio group中。但是实际运行时多个radiobutton会被同时选中: 代码如下: mRadioGroup findViewById(R.id.radioGroup);mDevButtons new RadioButton[device_count];for(int i0;i<device_count;i) {mDevButtons[i] …...

如何在ElementTree文本中嵌入标签

在 ElementTree 中&#xff0c;你可以使用 Element 对象的方法来创建新的标签&#xff0c;并将其嵌入到现有的 XML 结构中。下面是一个简单的示例&#xff0c;演示了如何在 ElementTree 文本中嵌入新的标签&#xff1a; 1、问题背景 我正在使用Python ElementTree模块来处理HT…...

C语言宏定义+条件编译

1、宏定义 1.概念 C语言中的宏定义是一种预处理指令&#xff0c;它允许开发者为一段代码或值定义一个名称&#xff0c;称为宏。在编译程序时&#xff0c;预处理器会在实际编译之前对源代码进行预处理&#xff0c;将宏名称替换为其定义的内容。宏定义通常使用 #define 指令来实…...

python实现自动化测试框架如何进行数据参数化?这个包可以了解下

1.数据参数化介绍 只要你是负责编写自动化测试脚本的&#xff0c;数据参数化这个思想你就肯定会用 &#xff0c;数据参数化的工具你肯定的懂一些 &#xff0c;因为它能大大的提高我们自动化脚本编写效率 。 1.1什么是数据参数化 所谓的数据参数化 &#xff0c;是指所执行的测…...

面试题:Redis和MySql数据库如何保持数据一致性?

前提引入&#xff1a; 在高并发的场景下&#xff0c;大量的请求直接访问Mysql很容易造成性能问题。所以&#xff0c;我们都会用Redis来做数据的缓存&#xff0c;削减对数据库的请求。但是&#xff0c;Mysql和Redis是两种不同的数据库&#xff0c;如何保证不同数据库之间数据的一…...

直流遥控器 继电器8-10V应用 降压恒压SL3036电源芯片

在现代电子设备中&#xff0c;电源的稳定性和可靠性对于设备的正常运行至关重要。特别是在直流遥控器这类设备中&#xff0c;由于其需要长时间稳定运行且对电压稳定性要求较高&#xff0c;因此选择一款合适的电源芯片显得尤为重要。本文将重点介绍SL3036电源芯片在直流遥控器继…...

论文Abstract怎么写

摘要是你要写的最后一项内容 步骤 首先先通读自己的文章&#xff0c;清楚自己写的文章是研究型还是技术型&#xff0c;适合描述性的摘要还是知识性。 描述性摘要内含研究目的、目标及方向等&#xff0c;不讲研究结果。字数大约100-200字。知识性摘要则包含研究结果&#xff0c…...

PS系统教程19

渐变与照片调色 增加色彩背景新建图层选好渐变拉选图片渐变 与图层模式结合 也可以变换颜色 看起来比较自然&#xff0c;因为是与人物结合起来 也可以选择系统里面的一些色调 可以进行多次调试...

Excel函数之MAP

MAP 语法 MAP(array, [arrar2], ……, lambda(value,[value2], ……, calculation)) array:需要进行映射的数组,可以有多个 注:多个数组的形状大小尽可能保持一致,否则将出现错误值 value:数组中的每个值,每次取一个值,每个 array 按顺序对应一个 value calculation:…...

在2024年WWDC大会上,苹果宣布了其全新的“Apple Intelligence”AI功能以及ISO18功能

以下是一些主要的新增功能&#xff1a; Apple WWDC 2024开发者大会6月11日凌晨在总部Apple Park举行 1.智能照片编辑&#xff1a; 照片&#xff1a;AI驱动的照片润饰功能,可以根据用户描述生成自定义表情符号​ 2.Safari浏览助手&#xff1a; Safari&#xff1a;AI助手能够总…...

解决linux jenkins要求JDK版本与项目版本JDK不一致问题

背景–问题描述&#xff1a; 新入职公司&#xff0c;交接人说jenkins运行有问题&#xff0c;现在都是手动发布&#xff0c;具体原因让我自己看&#xff08;笑哭&#xff09;。我人都蒙了&#xff0c;测试环境都手动发布&#xff0c;那不是麻烦的要死&#xff01; 接手后&am…...

推荐一款WPF绘图插件OxyPlot

开始 使用 NuGet 包管理器添加对 OxyPlot 的引用&#xff08;如果要使用预发布包&#xff0c;请参阅下面的详细信息&#xff09;向用户界面添加PlotView在代码中创建一个PlotModel绑定到你的属性PlotModelModelPlotView 例子 您可以在代码存储库的文件夹中找到示例。/Source/Ex…...

普通表在线重定义为分区表

普通表在线转换成分区表示例 源表表结构如下&#xff1a; CREATE TABLE EDC_SEPERATOR ( SEPERATOR_ID NUMBER(15) NOT NULL, EQUIPMENTINFO NVARCHAR2(20), RECORD NVARCHAR2(50), TITLE NVARCHAR2(50), ID NVARCHAR2(50), TE…...

从 Token 消耗到 AI 资产:企业如何把一次调用沉淀成模板、流程、知识库和制度

关键词:Token 管理、AI 资产、模板库、流程化、知识库、制度化、投入产出比 开篇:企业真正要管的不是 Token,而是 Token 之后留下了什么 很多企业开始使用 AI 以后,第一反应是看成本:这个月用了多少 Token,哪个部门调用最多,哪个模型最贵,哪些场景消耗最高。 这当然重…...

3步精通UE4SS游戏Mod开发:从注入到实战完全指南

3步精通UE4SS游戏Mod开发&#xff1a;从注入到实战完全指南 【免费下载链接】RE-UE4SS Injectable LUA scripting system, SDK generator, live property editor and other dumping utilities for UE4/5 games 项目地址: https://gitcode.com/gh_mirrors/re/RE-UE4SS UE…...

Cursor Pro 终极破解指南:如何永久免费使用AI编程神器

Cursor Pro 终极破解指南&#xff1a;如何永久免费使用AI编程神器 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能: Youve reached your tri…...

SkillSync MCP:为AI技能市场构建自动化安全门禁系统

1. 项目概述&#xff1a;为AI技能市场装上“安全门” 如果你和我一样&#xff0c;是Claude Code、Cursor这类AI编程助手的深度用户&#xff0c;那你一定对“技能”&#xff08;Skills&#xff09;这个概念不陌生。简单来说&#xff0c;技能就是一些预定义的提示词模板或工具脚…...

飞书文档批量导出工具:25分钟搞定700+文档的迁移难题

飞书文档批量导出工具&#xff1a;25分钟搞定700文档的迁移难题 【免费下载链接】feishu-doc-export 飞书文档导出服务 项目地址: https://gitcode.com/gh_mirrors/fe/feishu-doc-export 当企业需要切换办公平台或进行数据备份时&#xff0c;飞书文档的批量迁移常常成为…...

多模态大模型在光谱分析中的应用:温度参数调优与性能评估

1. 项目概述&#xff1a;当光谱分析遇上多模态大模型光谱分析&#xff0c;无论是红外、拉曼还是近红外光谱&#xff0c;一直是材料科学、生物医药、环境监测等领域的“火眼金睛”。它能通过物质与光的相互作用&#xff0c;揭示出样品的成分、结构乃至状态信息。然而&#xff0c…...

NodeMCU PyFlasher:ESP8266图形化固件烧录终极解决方案

NodeMCU PyFlasher&#xff1a;ESP8266图形化固件烧录终极解决方案 【免费下载链接】nodemcu-pyflasher Self-contained NodeMCU flasher with GUI based on esptool.py and wxPython. 项目地址: https://gitcode.com/gh_mirrors/no/nodemcu-pyflasher 对于ESP8266开发者…...

5分钟快速上手APK Installer:在Windows上安装Android应用的终极指南

5分钟快速上手APK Installer&#xff1a;在Windows上安装Android应用的终极指南 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否想在Windows电脑上直接安装和运行…...

如何用GHelper解决华硕笔记本性能管理难题:轻量级开源工具的完整指南

如何用GHelper解决华硕笔记本性能管理难题&#xff1a;轻量级开源工具的完整指南 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivoboo…...

Metz Connect工业连接器国产替代技术解析

在工业自动化、楼宇控制以及通信基础设施领域&#xff0c;连接器作为底层物理连接单元&#xff0c;直接影响系统的稳定性与长期可靠运行。Metz Connect作为德国知名连接技术厂商&#xff0c;其产品涵盖工业以太网连接器、PCB端子、RJ45模块化接口、M12工业连接器以及DIN导轨I/O…...