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

server/2024/11/19 13:27:06/

【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.ppmy.cn/server/143198.html

相关文章

基于YOLOv8深度学习的无人机视角军事打击目标检测系统研究与实现(PyQt5界面+数据集+训练代码)

随着无人机技术的迅速发展及其在军事领域的广泛应用&#xff0c;精准目标检测逐渐成为现代战场中提升打击效能和战术决策的关键技术之一。无人机因其灵活性、机动性和高效性&#xff0c;已经成为现代战争中不可或缺的侦察与打击工具。在复杂多变的战场环境中&#xff0c;及时、…

【python】掌握 Flask:轻量级 Web 开发框架解析

【Python】掌握 Flask&#xff1a;轻量级 Web 开发框架解析 引言 Flask 是一个轻量级、灵活且广受欢迎的 Python Web 开发框架。它以其简单易用、模块化和强大的扩展功能而闻名&#xff0c;适合用于小型应用和快速原型设计。同时&#xff0c;Flask 提供了一系列工具和库&…

使用 OpenAI 提高 Appium 测试脚本效率:从优化到跨平台支持

#自动化测试工程师在使用 Appium 进行移动端测试时&#xff0c;经常需要面对以下挑战&#xff1a; 测试脚本结构混乱&#xff0c;难以维护和复用。复杂交互场景&#xff08;如滑动、拖拽&#xff09;脚本难以编写和调试。跨平台测试需要解决设备兼容性和平台差异。 本文将结合…

uniapp开发微信小程序笔记3-全局配置、导航栏配置、tabBar配置

前言&#xff1a; 本文记录的是微信小程序的全局配置、导航栏配置、tabBar配置 一、全局配置&#xff1a; 可以直接查官方文档&#xff1a;pages.json 页面路由 | uni-app官网&#xff0c;有非常详细的文档说明 都是在 pages.json里面做配置的&#xff0c;我们可以看到已经有…

React Native 全栈开发实战班 - 图片加载与优化

在移动应用中&#xff0c;图片加载与优化 是提升用户体验和减少资源消耗的重要环节。图片加载不当可能导致应用卡顿、内存泄漏甚至崩溃。本章节将介绍 React Native 中常用的图片加载方法&#xff0c;包括 Image 组件的使用、第三方图片加载库&#xff08;如 react-native-fast…

C#设计模式(12)——享元模式(Flyweight Pattern)

前言 享元模式通过共享对象来减少内存使用和提高性能。 代码 public abstract class Flyweight {public abstract void Control(); }public class ComputerFlyweight : Flyweight {private string _operator;public ComputerFlyweight(string name){_operator name;}public o…

Cesium 相机系统

Cesium 的相机系统是其 3D 地球渲染引擎的重要组成部分&#xff0c;它控制用户在虚拟地球上的视图和交互体验。Cesium 的相机系统具备灵活性和强大的功能&#xff0c;允许开发者自定义视图、导航和交互方式。以下是 Cesium 相机系统的主要特点和功能&#xff1a; 1. 相机的基本…

Spring Boot汽车资讯:科技与速度的新境界

摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了汽车资讯网站的开发全过程。通过分析汽车资讯网站管理的不足&#xff0c;创建了一个计算机管理汽车资讯网站的方案。文章介绍了汽车资讯网站的系统分析部分&…