Unity类银河战士恶魔城学习总结(P127 Stat ToolTip属性提示)

【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili

教程源地址:https://www.udemy.com/course/2d-rpg-alexdev/

本章节实现了把鼠标放到属性上面就会显示属性的作用

UI_StatToolTip.cs

这段代码实现了一个UI提示框(ToolTip)功能,用于显示和隐藏某个对象的描述信息。主要通过 TextMeshProUGUI 组件在Unity中显示文字,来实现动态的文本显示效果。

方法分析:

  1. ShowStatToolTip(string _text)

    • 作用:该方法用来展示描述文本。传入一个字符串 _text,然后将这个文本赋值给 description.text,从而更新显示的文本内容。
    • gameObject.SetActive(true):启用当前 GameObject,使 Tooltip 可见。
  2. HideStatToolTip()

    • 作用:该方法用来隐藏 Tooltip。在这个方法中,description.text = ""; 清空文本内容,gameObject.SetActive(false) 隐藏 Tooltip。
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;public class UI_StatToolTip : MonoBehaviour
{[SerializeField] private TextMeshProUGUI description;public void ShowStatToolTip(string _text){description.text = _text;gameObject.SetActive(true);}public void HideStatToolTip(){description.text = "";gameObject.SetActive(false);}
}

 UI_StatSlot.cs

总结(更新部分):

  1. UpdateStatValueUI():更新玩家状态值在UI中的显示,根据不同的 statType 更新对应的数值。
  2. OnPointerEnter(PointerEventData eventData):鼠标悬停时,显示状态描述的提示框。
  3. OnPointerExit(PointerEventData eventData):鼠标离开时,隐藏状态描述的提示框。
using TMPro;
using UnityEngine;
using UnityEngine.EventSystems;//2024年11月12日
public class UI_StatSlot : MonoBehaviour,IPointerEnterHandler,IPointerExitHandler
{private UI ui;[SerializeField] private string statName;[SerializeField] private StatType statType;//用来存储当前状态的类型[SerializeField] private TextMeshProUGUI statValueText;//负责显示当前状态值[SerializeField] private TextMeshProUGUI statNameText;//用来显示状态名称[TextArea][SerializeField] private string statDescription;//状态描述private void OnValidate(){gameObject.name = "Stat - " + statName;//在场景中及时更新内容if (statNameText != null)statNameText.text = statName;}void Start(){UpdateStatValueUI();ui= GetComponentInParent<UI>();}public void UpdateStatValueUI(){PlayerStats playerStats = PlayerManager.instance.player.GetComponent<PlayerStats>();if (playerStats != null){statValueText.text = playerStats.GetStat(statType).GetValue().ToString();if(statType == StatType.health)statValueText.text = playerStats.GetMaxHealthValue().ToString();if (statType == StatType.damage)statValueText.text = (playerStats.damage.GetValue() + playerStats.strength.GetValue()).ToString();if (statType == StatType.critPower)statValueText.text = (playerStats.critPower.GetValue() + playerStats.strength.GetValue()).ToString();if (statType == StatType.critChance)statValueText.text = (playerStats.critChance.GetValue() + playerStats.agility.GetValue()).ToString();if (statType == StatType.evasion)statValueText.text = (playerStats.evasion.GetValue() + playerStats.agility.GetValue()).ToString();if (statType == StatType.magicRes)statValueText.text = (playerStats.magicResistance.GetValue() + playerStats.intelligence.GetValue() * 3).ToString();}}public void OnPointerEnter(PointerEventData eventData){ui.statToolTip.ShowStatToolTip(statDescription);}public void OnPointerExit(PointerEventData eventData){ui.statToolTip.HideStatToolTip();}
}

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

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

相关文章

计算机编程中的事件驱动编程模型及其在构建响应式用户界面中的应用

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 计算机编程中的事件驱动编程模型及其在构建响应式用户界面中的应用 计算机编程中的事件驱动编程模型及其在构建响应式用户界面中…

ROS第九梯:ROS+VSCode+Python+C++自定义消息发布和订阅

首先,Python版本的ROS项目和C++版本的ROS项目前期创建功能包的步骤基本一致,具体可参考第二章。 费一步:新建msg文件 在功能包(data_input)目录下创建一个msg文件夹,并在msg文件夹下创建一个名为Box的msg文件,具体如下图所示: 该msg文件为一个用于描述3D Box的文件,…

selenium元素定位---元素点击交互异常解决方法

&#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 1、异常原因 在编写ui自动化时&#xff0c;执行报错元素无法点击&#xff1a;ElementClickInterceptedException 具体报错&#xff1a;selenium.common.exc…

Front Panel Window Bounds 与 Front Panel Window Bounds 的区别与应用

在LabVIEW中&#xff0c;Front Panel Window Bounds 和 Front Panel WindowBounds 是两个不同的属性节点&#xff0c;用于描述前面板窗口的位置和大小。它们的区别主要体现在它们表示的是窗口的不同部分&#xff0c;具体如下&#xff1a; 1 Window Bounds&#xff1a;调整整个…

H.265流媒体播放器EasyPlayer.js播放器出现加载视频等待画面时长过长的原因排查

在数字媒体时代&#xff0c;用户体验是衡量播放器性能的关键指标之一。EasyPlayer.js网页web无插件播放器作为一款流行的Web视频播放器&#xff0c;其加载速度和响应时间直接影响着用户的观看体验。 1、问题描述 加载视频等待画面时长过长。 2、可能的原因&#xff1a; 检查下…

计算机网络-MSTP基础实验一(单域多实例)

前面我们已经大致了解了MSTP的基本概念和工作原理&#xff0c;但是我自己也觉得MSTP的理论很复杂不结合实验是很难搞懂的&#xff0c;今天来做一个配套的小实验以及一些配置命令。 一、网络拓扑 单域多实例拓扑 基本需求&#xff1a;SW1为VLAN10的网关&#xff0c;SW2为VLAN20的…

大数据-227 离线数仓 - Flume 自定义拦截器(续接上节) 采集启动日志和事件日志

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; Java篇开始了&#xff01; 目前开始更新 MyBatis&#xff0c;一起深入浅出&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff0…

【langchain4j】AIservices能够实现更加灵活的chain

文章目录 AI service介绍如何工作的AiServices提供的能力支持的返回形式 简单的例子&#xff1a;接收用户消息&#xff0c;并按规定返回接收单个变量接收更多动态变量 advanced RAGChaining multiple AI Services&#xff1a;多个AiSerives合并到一起相关教程&#xff1a;[Lang…

【UGUI】背包的交互01(道具信息跟随鼠标+道具信息面板显示)

详细程序逻辑过程 初始化物品栏&#xff1a; 在 Awake 方法中&#xff0c;通过标签找到提示框和信息面板。 循环生成10个背包格子&#xff0c;并为每个格子设置图标和名称。 为每个格子添加 UInterMaager232 脚本&#xff0c;以便处理交互事件。 关闭提示框和信息面板&#…

同步互斥相关习题10道 附详解

PV操作 2016 某系统允许最多10个进程同时读文件F&#xff0c;当同时读文件F的进程不满10个时&#xff0c;欲读该文件的其他文件可立即读&#xff0c;当已有10个进程在读文件F时读&#xff0c;其他欲读文件F的进程必须等待&#xff0c;直至有进程读完后退出方可去读 在实现管…

Postman之数据提取

Postman之数据提取 1. 提取请求头\request中的数据2. 提取响应消息\response中的数据3. 通过正在表达式提取4. 提取cookies数据 本文主要讲解利用pm对象对数据进行提取操作&#xff0c;虽然postman工具的页面上也提供了一部分的例子&#xff0c;但是实际使用时不是很全面&#…

【专题】数据库原理与应用之故障恢复

1. 数据库故障恢复概述 数据库的可恢复性&#xff1a; DBMS能把数据库从被破坏、不正确的状态、恢复到最近一个正确的状态。 恢复管理任务的种类&#xff1a; 一是在未发生故障而系统正常运行时&#xff0c;采取一些必要措施为恢复工作打基础。 二是在发生故障后进行恢复处…

EXCEL 或 WPS 列下划线转驼峰

使用场景&#xff1a; 需要将下划线转驼峰&#xff0c;直接在excel或wps中第一行使用公式&#xff0c;然后快速刷整个列格式即可。全列工下划线转为格式&#xff0c;使用效果如下&#xff1a; 操作步骤&#xff1a; 第一步&#xff1a;在需要显示驼峰的一列&#xff0c;复制以…

MODBUS TCP转CANOpen网关

Modbus TCP转CANopen网关 型号&#xff1a;SG-TCP-COE-210 产品用途 本网关可以实现将CANOpen接口设备连接到MODBUS TCP网络中&#xff1b;并且用户不需要了解具体的CANOpen和Modbus TCP 协议即可实现将CANOpen设备挂载到MODBUS TCP接口的 PLC上&#xff0c;并和CANOpen设备…

分布式----Ceph部署

目录 一、存储基础 1.1 单机存储设备 1.2 单机存储的问题 1.3 商业存储解决方案 1.4 分布式存储&#xff08;软件定义的存储 SDS&#xff09; 1.5 分布式存储的类型 二、Ceph 简介 三、Ceph 优势 四、Ceph 架构 五、Ceph 核心组件 #Pool中数据保存方式支持两种类型&…

自动驾驶系列—面向自动驾驶的模型迭代:工具、平台与最佳实践

&#x1f31f;&#x1f31f; 欢迎来到我的技术小筑&#xff0c;一个专为技术探索者打造的交流空间。在这里&#xff0c;我们不仅分享代码的智慧&#xff0c;还探讨技术的深度与广度。无论您是资深开发者还是技术新手&#xff0c;这里都有一片属于您的天空。让我们在知识的海洋中…

Spring Boot3自定义starter

1、加入必要依赖 plugins {id javaid org.springframework.boot version 3.2.6id io.spring.dependency-management version 1.1.5 } group org.example.test.starter version 1.1.0jar{enabledtrue// resolveMainClassName }java {toolchain {languageVersion JavaLanguage…

AI开发-计算机视觉库-OpenCV

1 需求 官网&#xff1a;OpenCV - Open Computer Vision Library 2 接口 3 示例 import cv2image cv2.imread("./data/train/1_1.jpg") print(type(image)) 4 参考资料

delphi fmx android 离线人脸识别

搜遍全网都没有找到delphi android 能用的 离线人脸识别,无需注册什么开发者 有这方面需求的可以用fsdk 这边用的luxand.FSDK8.0 android下的注册号要自己找下 1,用老猫的工具将android 下的sdk,FSDK.java 编译成FSDK.jar 老猫的工具 2,用上面的工具将FSDK.jar 生成de…

RabbitMQ教程:工作队列(Work Queues)(二)

RabbitMQ教程&#xff1a;工作队列&#xff08;Work Queues&#xff09;&#xff08;二&#xff09; 一、引言 在快节奏的软件开发世界中&#xff0c;我们经常面临需要异步处理任务的场景&#xff0c;比如在Web应用中处理耗时的图片处理或数据分析任务。这些任务如果直接在用…