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

Unity技巧:轻松实现鼠标悬停文本时的动态变色效果

文章目录

  • 前言
  • 一、Text
  • 二、TMP_Text
  • 二、颜色转换
  • 总结


前言

在游戏或应用中,给用户的界面添加一些小的互动效果能让它们更加吸引人。比如,当策划要求你这样做的时候 ,当用户将鼠标悬停在文字上时,文字颜色改变,这样的效果会让界面看起来更有趣。本文将教你如何在Unity中实现这个效果,将写好的脚本挂载到按钮上即可。


一、Text

using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;public class TextColorChange : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler
{public Color normalColor = Color.blue; // 默认颜色public Color hoverColor = Color.white; // 悬停时颜色private Text textComponent;private void Start(){textComponent = GetComponentInChildren<Text>();if (textComponent == null){Debug.LogError("没有找到Text组件,请确保文本对象是Button的子对象,并且拥有Text组件。");}else{textComponent.color = normalColor;}}public void OnPointerEnter(PointerEventData eventData){if (textComponent != null){textComponent.color = hoverColor; // 悬浮时将字体颜色改为悬停颜色}}public void OnPointerExit(PointerEventData eventData){if (textComponent != null){textComponent.color = normalColor; // 离开时将字体颜色还原为默认颜色}}
}

二、TMP_Text

using UnityEngine;
using TMPro;
using UnityEngine.EventSystems;public class TMPTextColorChange : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler
{public Color normalColor = Color.blue; // 默认颜色public Color hoverColor = Color.white; // 悬停时颜色private TMP_Text textMeshPro;private void Start(){textMeshPro = GetComponentInChildren<TMP_Text>();if (textMeshPro == null){Debug.LogError("没有找到TMP_Text组件,请确保文本对象是Button的子对象,并且拥有TMP_Text组件。");}else{textMeshPro.color = normalColor;}}public void OnPointerEnter(PointerEventData eventData){if (textMeshPro != null){textMeshPro.color = hoverColor; // 悬浮时将字体颜色改为悬停颜色}}public void OnPointerExit(PointerEventData eventData){if (textMeshPro != null){textMeshPro.color = normalColor; // 离开时将字体颜色还原为默认颜色}}
}

二、颜色转换

如果要使用配置加载,或者用类似#xxxxx的颜色格式进行配置的话,使用以下逻辑封装成适合的方法。

Color sample;
ColorUtility.TryParseHtmlString("#3790E7", out sample);
textMeshPro.color = sample;Text.color = ColorUtility.TryParseHtmlString("#3790E7", out var color) ? color : Color.blue;

总结

使用这些脚本,你可以轻松地在Unity中实现鼠标悬停时改变文字颜色的效果。

相关文章:

Unity技巧:轻松实现鼠标悬停文本时的动态变色效果

文章目录 前言一、Text二、TMP_Text二、颜色转换总结 前言 在游戏或应用中&#xff0c;给用户的界面添加一些小的互动效果能让它们更加吸引人。比如&#xff0c;当策划要求你这样做的时候 &#xff0c;当用户将鼠标悬停在文字上时&#xff0c;文字颜色改变&#xff0c;这样的效…...

谷歌账号活动异常,或者申诉回来以后需要手机验证的原因,以及验证手机号的错误操作和正确操作

有一些朋友在使用谷歌账号的时候&#xff0c;会遇到无法直接登录的情况&#xff0c;输入用户名、密码以后&#xff0c;提示说账号活动异常&#xff0c;需要验证手机号。 通常有以下两种情形和界面&#xff0c;出现这种情形的原因分别如下。 一、谷歌账号登录需要输入手机号码…...

System V IPC奥秘:解锁共享内存、消息队列与信号量的高效通信之路

&#x1f351;个人主页&#xff1a;Jupiter. &#x1f680; 所属专栏&#xff1a;Linux从入门到进阶 欢迎大家点赞收藏评论&#x1f60a; 目录 &#x1f351;system V共享内存 &#x1f352;共享内存的原理共享内存数据结构查看和删除共享内存资源的命令 &#x1f33b;共享内存…...

怎么将pdf转为ppt文件?pdf转ppt的8个方法

在诸多职场与学术交流的场合中&#xff0c;我们时常面临将详尽的PDF文件转化为生动且易于编辑的PPT演示文稿的需求。这一转换不仅是为了满足演示时的灵活性&#xff0c;更是为了提升信息传递的效率与观众的理解度。从简单的在线工具到功能全面的专业软件&#xff0c;我们拥有多…...

【Datawhale AI夏令营第四期】 魔搭-大模型应用开发方向笔记 Task03 大咖项目分享 人话八股文Bakwaan_Buddy项目开发尝试

【Datawhale AI夏令营第四期】 魔搭-大模型应用开发方向笔记 Task03 人话八股文Bakwaan_Buddy项目开发尝试 Idea: 我们草台班子目前的想法是解决大家计算机学院毕业面临的BUG——不爱背、背不下来八股文&#xff0c;觉得枯燥、烦、工作了用不着&#xff0c;反正就是知识他不进…...

如何在wordpress当中使用插件WP Coder(将html、css、javascript应用到wordpress上)

了解认识阶段 安装并运行好WP Coder之后如下图&#xff1a; 设置全局PHP 禁用gutenberg 输入代码 add_filter(gutenberg_can_edit_post, __return_false, 10); add_filter(use_block_editor_for_post, __return_false, 10); 记得点击save并勾选enable PHP code 禁用之后打…...

ActiveMQ、RabbitMQ、Kafka、RocketMQ在消息回溯、消息堆积+持久化、消息追踪、消息过滤的区别

ActiveMQ、RabbitMQ、Kafka、RocketMQ在消息回溯、消息堆积持久化、消息追踪、消息过滤等方面各有其独特的特点和优势。以下是这四个方面的详细比较&#xff1a; 1. 消息回溯 ActiveMQ&#xff1a;支持消息回溯功能。ActiveMQ可以将消息持久化到磁盘上&#xff0c;因此当需要…...

使用ITextRenderer导出PDF后无法打开问题,提示‘无法打开此文件‘

依赖如下 <!-- https://mvnrepository.com/artifact/org.xhtmlrenderer/flying-saucer-pdf --> <dependency><groupId>org.xhtmlrenderer</groupId><artifactId>flying-saucer-pdf</artifactId><version>9.1.22</version> &l…...

STL必须掌握的几大常见算法

1. std::sort 功能:对容器中的元素进行排序。 用法: #include <algorithm> #include <vector>std::vector<int> vec = {3, 1, 4, 1, 5, 9}; std::sort(vec.begin(), vec.end());你知道sort内部用的什么排序吗 2. std::reverse 功能:将容器中的元素顺…...

HAproxy 七层负载均衡调度器详解及配置

HAproxy 七层负载均衡 负载均衡技术 负载均衡&#xff08;Load Balance&#xff09;&#xff1a;一种服务&#xff0c;或基于硬件设备实现的高可用的反向代理技术&#xff0c;是指将特定的业务流量分摊给一个或多个后端的特定服务器或设备&#xff0c;实现高并发处理业务流量…...

Python学习笔记--私有属性、构造方法、析构方法、常用内置方法

目录 私有属性 构造方法 析构方法 常用内置方法 私有属性 1. 私有属性是指在类内可以直接访问、而在类外无法直接访问的属性 2. Python中规定&#xff0c;在定义类时&#xff0c;如果一个类属性名是以__&#xff08;两个下划线&#xff09;开头&#xff0c;则该类属性为私…...

4章8节:用R做数据重塑,行列命名和数据类型转换

在R语言中,行列命名和数据类型转换是数据处理中的两个基础性操作。它们不仅对数据的可读性和组织性至关重要,而且在执行数据分析、模型构建和结果解释时也扮演着重要的角色。 一、行和列命名 在数据科学和统计分析中,命名是组织和管理数据的一个重要部分。尤其是在处理复杂…...

浏览器发出请求到响应的过程

客户端发起请求&#xff1a;用户输入URL并回车&#xff0c;浏览器解析URL&#xff0c;生成HTTP请求。 DNS解析&#xff1a;浏览器查看本地hosts文件是否有域名的IP地址映射&#xff0c;如果没有则向DNS服务器发起解析请求&#xff0c;获取域名对应的IP地址。 建立TCP连接&…...

eNSP 华为划分VLAN

SW1&#xff1a; <Huawei>system-view [Huawei]sysname SW1 [SW1]VLAN batch 10 20 //批量划分vlan [SW1]interface GigabitEthernet0/0/1 [SW1-GigabitEthernet0/0/1]port link-type access //设置为access口&#xff0c;access口允许单个vlan通过 [SW1-GigabitEth…...

公用事业公司签署大规模电力供应协议

随着人工智能技术的迅猛发展&#xff0c;美国公用事业公司与数据中心运营商之间的电力供应协议数量显著增加&#xff0c;为未来几季度的销售和利润增长奠定了基础。根据高盛今年5月发布的一份报告&#xff0c;到2030年&#xff0c;数据中心的发电量预计将占美国总发电量的8%&am…...

C语言 | Leetcode C语言题解之第341题扁平化嵌套列表迭代器

题目&#xff1a; 题解&#xff1a; struct NestedIterator {int *vals;int size;int cur; };void dfs(struct NestedIterator *iter, struct NestedInteger **nestedList, int nestedListSize) {for (int i 0; i < nestedListSize; i) {if (NestedIntegerIsInteger(neste…...

冷知识:编程第一人是位伟大的女性

冷门智慧&#xff1a;阿达编程先驱的传奇人生揭秘在线播放免费听 - 喜马拉雅手机版欢迎收听由主播壹道徽为您带来的“冷门智慧&#xff1a;阿达编程先驱的传奇人生揭秘”精彩有声内容&#xff0c;该音频时长5分18秒&#xff0c;已被收听1062次&#xff0c;用户嘎嘎呗嘎嘎评价说…...

Python爬虫使用实例

IDE&#xff1a;大部分是在PyCharm上面写的 解释器装的多 → 环境错乱 → error&#xff1a;没有配置&#xff0c;no model 爬虫可以做什么&#xff1f; 下载数据【文本/二进制数据&#xff08;视频、音频、图片&#xff09;】、自动化脚本【自动抢票、答题、采数据、评论、点…...

主成分分析(PCA)

1 主成分分析简介 主成分分析&#xff08;Principal Component Analysis&#xff0c;PCA&#xff09;&#xff0c; 将多个变量通过线性变换以选出较少个数重要变量的一种多元统计分析方法。主成分分析是由卡尔皮尔逊(Karl Pearson)于1901年发明的。通过维度约减的方式将高维度…...

python实现生命游戏

“生命游戏”&#xff08;Conway’s Game of Life&#xff09;是由数学家约翰康威提出的一种零玩家游戏。它是一个细胞自动机&#xff0c;由一组简单的规则决定每个细胞的状态。以下是用Python实现“生命游戏”的代码示例&#xff1a; Python代码实现 import numpy as np imp…...

谷歌浏览器插件

项目中有时候会用到插件 sync-cookie-extension1.0.0&#xff1a;开发环境同步测试 cookie 至 localhost&#xff0c;便于本地请求服务携带 cookie 参考地址&#xff1a;https://juejin.cn/post/7139354571712757767 里面有源码下载下来&#xff0c;加在到扩展即可使用FeHelp…...

ubuntu搭建nfs服务centos挂载访问

在Ubuntu上设置NFS服务器 在Ubuntu上&#xff0c;你可以使用apt包管理器来安装NFS服务器。打开终端并运行&#xff1a; sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享&#xff0c;例如/shared&#xff1a; sudo mkdir /shared sud…...

通过Wrangler CLI在worker中创建数据库和表

官方使用文档&#xff1a;Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后&#xff0c;会在本地和远程创建数据库&#xff1a; npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库&#xff1a; 现在&#xff0c;您的Cloudfla…...

基于服务器使用 apt 安装、配置 Nginx

&#x1f9fe; 一、查看可安装的 Nginx 版本 首先&#xff0c;你可以运行以下命令查看可用版本&#xff1a; apt-cache madison nginx-core输出示例&#xff1a; nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...

连锁超市冷库节能解决方案:如何实现超市降本增效

在连锁超市冷库运营中&#xff0c;高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术&#xff0c;实现年省电费15%-60%&#xff0c;且不改动原有装备、安装快捷、…...

Frozen-Flask :将 Flask 应用“冻结”为静态文件

Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是&#xff1a;将一个 Flask Web 应用生成成纯静态 HTML 文件&#xff0c;从而可以部署到静态网站托管服务上&#xff0c;如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...

Linux-07 ubuntu 的 chrome 启动不了

文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了&#xff0c;报错如下四、启动不了&#xff0c;解决如下 总结 问题原因 在应用中可以看到chrome&#xff0c;但是打不开(说明&#xff1a;原来的ubuntu系统出问题了&#xff0c;这个是备用的硬盘&a…...

Mobile ALOHA全身模仿学习

一、题目 Mobile ALOHA&#xff1a;通过低成本全身远程操作学习双手移动操作 传统模仿学习&#xff08;Imitation Learning&#xff09;缺点&#xff1a;聚焦与桌面操作&#xff0c;缺乏通用任务所需的移动性和灵活性 本论文优点&#xff1a;&#xff08;1&#xff09;在ALOHA…...

【生成模型】视频生成论文调研

工作清单 上游应用方向&#xff1a;控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...

代码规范和架构【立芯理论一】(2025.06.08)

1、代码规范的目标 代码简洁精炼、美观&#xff0c;可持续性好高效率高复用&#xff0c;可移植性好高内聚&#xff0c;低耦合没有冗余规范性&#xff0c;代码有规可循&#xff0c;可以看出自己当时的思考过程特殊排版&#xff0c;特殊语法&#xff0c;特殊指令&#xff0c;必须…...