首页 > 其他分享 >Unity类银河恶魔城学习记录12-5 p127 Stat ToolTip源代码

Unity类银河恶魔城学习记录12-5 p127 Stat ToolTip源代码

时间:2024-04-05 18:31:17浏览次数:43  
标签:p127 GetValue Stat text playerStats using 源代码 public statType

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释,可供学习Alex教程的人参考
此代码仅为较上一P有所改变的代码

【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili
UI.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class UI : MonoBehaviour
{
    [SerializeField] private GameObject characterUI;
    
    public UI_itemTooltip itemToolTip;
    public UI_statToolTip statToopTip;

    public void Start()
    {
        //itemToolTip = characterUI.GetComponentInChildren<UI_itemTooltip>();
        //statToopTip = characterUI.GetComponentInChildren<UI_statToolTip>();
    }
    public void SwitchTo(GameObject _menu)
    {
        for(int i = 0;i < transform.childCount;i++)
        {
            transform.GetChild(i).gameObject.SetActive(false);
        }

        if(_menu != null)
        {
            _menu.SetActive(true);
        }
    }
}


UI_statTooltip.cs
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)
    {
        Debug.Log(3);
        if (_text == null)
            return;
        Debug.Log(4);
        description.text = _text;
        
        gameObject.SetActive(true);
    }

    public void HideStatToolTip()
    {
        description.text = "";
        gameObject.SetActive(false);
    }
}
UI_statslot.cs
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.EventSystems;

public class UI_statslot : MonoBehaviour,IPointerEnterHandler,IPointerExitHandler
{
    private UI ui;

    [SerializeField] private StatType statType;
    [SerializeField] private TextMeshProUGUI statValueText;
    [SerializeField] private TextMeshProUGUI statNameText;

    [TextArea]
    [SerializeField] private string statDescription;
    
    private void OnValidate()
    {
        gameObject.name = "Stat - " + statType.ToString();

        if(statNameText != null)
        {
            statNameText.text = statType.ToString();
        }
    }

    private void Start()
    {
        UpdateStatValueUI();
        ui = GetComponentInParent<UI>();
    }

    public void UpdateStatValueUI()
    {
        PlayerStats playerStats = PlayerManager.instance.player.GetComponent<PlayerStats>();

        if(playerStats != null)
        {
            statValueText.text = playerStats.GetStats(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.magicResistance)
                statValueText.text = (playerStats.magicResistance.GetValue() + playerStats.intelligence.GetValue()*3).ToString();


        }
    }

    public void OnPointerEnter(PointerEventData eventData)
    {
        if (statDescription == null)
            return;
        Debug.Log("1");
        ui.statToopTip.ShowStatToolTip(statDescription);
    }

    public void OnPointerExit(PointerEventData eventData)
    {

        Debug.Log("2");
        ui.statToopTip.HideStatToolTip();
    }
}

标签:p127,GetValue,Stat,text,playerStats,using,源代码,public,statType
From: https://blog.csdn.net/Homura_/article/details/137405991

相关文章

  • c++ static_cast显式类型转换
    static_cast<>在C++中是一种用于执行显式类型转换的运算符,它在编译时检查类型转换的有效性,比C风格的强制转换(如(int)x)提供了更强的类型检查。基本类型之间的转换用于基本数据类型(如int、float、double等)之间的转换,使得不同类型的数据可以进行操作。inti=10;float......
  • 基于SpringBoot+Vue的美食烹饪互动平台附带文章和源代码部署视频讲解等
    在这里插入图片描述@toc前言......
  • 如何搭建一个免费的源代码托管工具?
    代码是企业的核心资产,每个用软件创造价值的企业有需要有一个源代码托管平台来存储企业的核心资产,这样既能方便公司内部人员通过协作来进行软件研发,又能对所有的研发过程做到版本控制、安全审计等。市面上能做到这些的产品又不少,但是在最终选择之前必须考虑以下几个因素:是......
  • goDbClient开源代码--通用查询
    开源地址: https://gitee.com/ichub/godbclient.git通用查询funcTest0010_SelectDptSub(t*testing.T){vardbRequest=NewPageDbRequest(2)dbRequest.TableName="department"dbRequest.Eq("id",1)dbRequest.NewSubTable()dbR......
  • VMamba: Visual State Space Model
    VMamba:VisualStateSpaceModelVMamba:视觉状态空间模型论文链接:http://arxiv.org/abs/2401.10166代码链接:https://github.com/MzeroMiko/VMamba1、摘要 借鉴了最近引入的状态空间模型SSM,提出了VisualStateSpaceModel(VMamba),它实现了线性复杂度,同时保持了全局感受......
  • 设计模式|状态机模式(State Machine Pattern)
    文章目录结构使用步骤示例使用状态机的场景常见面试题状态机模式(StateMachinePattern)是一种用于描述对象的行为软件设计模式,属于行为型设计模式。在状态机模式中,对象的行为取决于其内部状态,并且在不同的状态下,对象可能会有不同的行为。状态机模式通常涉及定义一组状......
  • 【云原生篇】K8S之StatefulSet 详解
    在Kubernetes(K8s)中,StatefulSet是一种用于管理有状态应用的工作负载API对象。与Deployment管理无状态应用不同,StatefulSet为每个Pod副本提供了持久性标识符(如名称和网络标识),并且可以保证部署和扩展顺序、以及网络标识和存储的稳定性。核心特性稳定、唯一的网......
  • dbt statement macro 简单说明
    statementblocks实际上就是一个标准的jinja2macro调用包装,提供了方便的sql执行能力,因为需要进行查询结果的存储,dbt提供了一个store_result的macro,内部数据的处理基于了agate这个方便的python数据处理包为了查询使用提供了load_resultmacro以下只说明关于stateme......
  • VMware Workstation Pro各版本下载链接汇总(特全!!!)
    VMwareWorkstationPro各版本下载链接汇总(10、11、12、14、15、16官网全版本)整理不易,点赞关注一下吧工具软件:VMwareWorkstationPro1.系统要求VM17:硬件要求较高,Windows10或更高版64位。VM16:硬件要求较高,Windows10或更高版64位。VM15:硬件要求中等,Windows7或更高......
  • 如何将之前编辑的文章HTML源代码导入到TinyMCE编辑器中
    如何将之前编辑的文章HTML源代码导入到TinyMCE编辑器中 如果你想用TinyMCE来修改你之前写的文章那么你需要将源代码放到TinyMCE中,如果服务器把HTML源码发给我们可是我们应该怎样调用?方法为使用 tinymce.activeEditor.setContent()这个函数具体用法为:tinymce.activeEdito......