Unity实现动态数字变化

最近的项目需要动态显示数字,所以使用Text组件,将数字进行变化操作过程记录下来。

一、UI准备

1、新建一个Text组件

在这里插入图片描述

2、新建C#脚本

在这里插入图片描述

3、将Text挂载到脚本上

在这里插入图片描述

二、函数说明

1、NumberChange 方法

NumberChange 方法接收四个参数:初始数字 initNum,显示的数字 showNum(即结果),目标数字 targetNum,以及一个表示变化速度的参数 v。此外,还有一个可选参数 changeType,用于指定变化类型,默认为线性变化。

根据 changeType 的值,使用 switch 语句进行不同类型的处理:
如果 changeType 是 Linear,则采用线性变化方式。计算出变化量 (targetNum - initNum) * Time.deltaTime / v,将其累加到 showNum 上。如果 showNum 超过或等于 targetNum,则将其设为 targetNum。最后返回 showNum。
如果 changeType 是 EaseIn,则直接返回 showNum,表示没有变化。
如果 changeType 是 EaseOut,采用先快后慢的变化方式。计算出变化量 (targetNum - showNum) * Time.deltaTime / v,将其累加到 showNum 上,然后返回 showNum。

3、ChangeType 方法

在 ChangeType 枚举中定义了三种变化速度的类型:
Linear 表示线性变化,即变化速度保持恒定。
EaseIn 表示先慢后快的变化方式。
EaseOut 表示先快后慢的变化方式

三、项目展示

1、源码展示

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class NUMdd : MonoBehaviour
{
    /// <summary>
    /// 数字变化
    /// </summary>
    /// <param name="initNum">初始数字</param>
    /// <param name="showNum">显示的数字(结果)</param>
    /// <param name="targetNum">目标数字</param>
    /// <param name="v">Linear:时间    EaseOut:比例值</param>
    /// <param name="changeType">变化类型</param>
    public Text numberText;
    public float changeSpeed = 1.0f;
    public ChangeType changeType = ChangeType.Linear;

    double initNum = 0.0;
    double showNum = 0.0;
    double targetNum = 100.0;


    void Update()
    {
        // 调用 NumberChange 方法计算数字变化
        showNum = NumberChange(initNum, showNum, targetNum, changeSpeed, changeType);

        // 更新 UI 显示
        numberText.text = showNum.ToString();
    }

    // NumberChange 方法
    public static double NumberChange(double initNum, double showNum, double targetNum, float v, ChangeType changeType = ChangeType.Linear)
    {
        switch (changeType)
        {
            case ChangeType.Linear:
                showNum += (targetNum - initNum) * Time.deltaTime / v;
                if (showNum >= targetNum)
                {
                    showNum = targetNum;
                }
                return showNum;
            case ChangeType.EaseIn:
                return showNum;
            case ChangeType.EaseOut:
                showNum += (targetNum - showNum) * Time.deltaTime / v;
                return showNum;
            default:
                return 0;
        }
    }
    
}
/// <summary>
/// 数字变化
/// </summary>
public enum ChangeType
{
    Linear,//线性
    EaseIn,//先慢后快
    EaseOut,//先快后慢
}

2、效果展示

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

maven问题汇总

​ 1、报错 failed to transfer from http://0.0.0.0/ during a previous attempt. com.byd.xxx:xxx-parent:pom:1.1.0-SNAPSHOT failed to transfer from http://0.0.0.0/ during a previous attempt. This failure was cached in the local repository and resolution is no…

一分钟成为点灯大师(超简单5行代码-STM32F407的HAL实现按键轮询点亮LED灯)

一、开发环境 硬件&#xff1a;正点原子探索者 V3 STM32F407 开发板 单片机&#xff1a;STM32F407ZGT6 Keil版本&#xff1a;5.32 STM32CubeMX版本&#xff1a;6.9.2 STM32Cube MCU Packges版本&#xff1a;STM32F4 V1.27.1 使用STM32F407的HAL库实现按键轮询读取按键值&…

ssh-key关于authorized_keys电脑与linux互相认证

思路&#xff1a; 在A上生成公钥私钥。将公钥拷贝给server B&#xff0c;要重命名成authorized_keys(从英文名就知道含义了)Server A向Server B发送一个连接请求。Server B得到Server A的信息后&#xff0c;在authorized_key中查找&#xff0c;如果有相应的用户名和IP&#xf…

C语言Linux vim shell命令

1. actionmotion dG删到文件尾 ggdG先到开头再删除到末尾 d^到达行首 d$到行尾 2. num action 2dd删除两行 t"向后寻找"找到&#xff0c;找到前面一个位置 f"向后寻找"找到&#xff0c;直接找到本来的位置 diw删除单词并保持在视图状态&#xff…

抖音abogus(收部Pixel2手机退坑的dd我走咸鱼淘宝)

声明 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01;wx a15018601872 本文章未…

结构体输出字符串末尾有奇怪字符

今天打开之前的陈年老题&#xff0c;发现一个思路全对&#xff0c;但是答案错误的简单结构体的题&#xff0c;发现这个字符串输出末尾有奇怪字符&#xff0c;后来经过一番搜索发现&#xff0c;是因为给字符串定义的时候分配的空间不够&#xff0c;所以多分配一些就好啦 修改后&…

python-自动化篇-终极工具-用GUI自动控制键盘和鼠标-pyautogui-键盘

文章目录 键盘键盘——记忆宫殿入门——通过键盘发送一个字符串——typewrite()常规——键名——typewrite()常规——按下键盘——keyDown()常规——释放键盘——keyUp()升级——热键组合——hotkey() 键盘 pyautogui也有一些函数向计算机发送虚拟按键&#xff0c;让你能够填充…

OpenHarmony 网络管理-Socket连接

介绍 本示例主要演示了Socket在网络通信方面的应用&#xff0c;展示了Socket在两端设备的连接验证、聊天通信方面的应用。 效果预览 使用说明 1.搭建服务器环境&#xff1a;修改服务器脚本中的服务端IP地址&#xff0c;与本机IP地址保持一致&#xff0c;修改完成后双击运行脚…

三种空间数据的聚合算法

原始数据分布 给老外做的Demo&#xff0c;所以是英文界面。 原始数据分布情况如下&#xff1a; geojson文本内容&#xff1a; 三种方法基本原理 三种聚合算法来做一个例子&#xff08;500条记录&#xff09;。 方法1&#xff1a;按Ol默认方法进行聚类&#xff0c;使用Open…

Java最新图形化界面开发技术——JavaFx教程(含UI控件用法介绍、属性绑定、事件监听、FXML)

文章目录 一、JavaFx介绍1、JavaFx简介2、可用性3、主要特征4、UI控件 二、JavaFx概述1、JavaFx结构图2、JavaFx组件&#xff08;1&#xff09;舞台&#xff08;2&#xff09;场景① 场景图② 节点 &#xff08;3&#xff09;控件&#xff08;4&#xff09;布局&#xff08;5&a…

网络安全产品---数据库防火墙/审计

数据库防火墙 防火墙的类型繁多&#xff0c;即使下一代防火墙或者说AI防火墙集成功能再多&#xff0c;我觉得waf与数据库防火墙也有其无法被替代的理由&#xff0c;以此记录我对数据库防火墙的理解 what 数据库防火墙是基于数据库协议分析与访问行为控制的数据库安全防护产品…

【QT学习】7.事件,把文本显示在页面中(文本可变),鼠标指针切换,鼠标左键右键按下,qt设置背景样式

0.创建项目&#xff0c;事件的创建 1.事件的位置 2.这就是多态&#xff0c;子类重写父类函数&#xff0c;子类调用子类函数&#xff0c;也可以调用父类函数。但同函数名 1.要求&#xff1a;文本显示在页面中&#xff08;文本可变&#xff09; 1.文本显示在页面的核心代码 主要步…

齐次变换矩阵、欧拉角

齐次变换矩阵 因为老是忘记齐次变换矩阵的含义以及方向&#xff0c;每次推导公式都很费劲&#xff0c;写下这篇文章用于快速回顾齐次变换矩阵。 表示的是&#xff1a;坐标系A到坐标系B的齐次变换矩阵&#xff0c;也是坐标系B在坐标系A下的位姿。 对于这个矩阵&#xff0c;有三…

万兆网络的十字路口:电口还是光模块?

&#x1f335;在构建高速、高效的网络系统时&#xff0c;选择正确的连接技术至关重要。万兆电口&#xff08;10GBASE-T&#xff09;和万兆光模块&#xff08;SFP&#xff09;是目前市场上两种主流的高速网络解决方案。它们各有优势&#xff0c;但在不同的应用场景和需求下&…

[阅读笔记18][CITING]LARGE LANGUAGE MODELS CREATE CURRICULUM FOR INSTRUCTION TUNING

这篇论文是23年10月提交到arxiv上的&#xff0c;也是用大模型蒸馏小模型的思路。 作者在这篇论文中提出了课程指令微调&#xff0c;大体流程如下图所示&#xff0c;教师模型给出一个问题&#xff0c;让学生模型回答一下&#xff0c;这时候学生回答大概率不够准确&#xff0c;这…

多因子模型的因子分组-克隆巴赫α系数

优质博文&#xff1a;IT-BLOG-CN 在建立我们的Alpha模型之前&#xff0c;我们得先知道什么是Alpha&#xff1f;Alpha是一条或者一系列能够预测股票走势的信息资讯组合。而这每一条非随机的信息资讯&#xff0c;我们称之为多因子模型的因子。多因子模型因子的选择需要避免系统性…

Lobechat 的基本使用流程

一、安装 下载lobechart的页面代码 $ git clone https://github.com/lobehub/lobe-chat.git $ cd lobe-chat $ pnpm install $ pnpm run dev注意&#xff1a;node环境要18以上 二、使用本地模型 1.安装ollama 2.通过ollama 下载本地模型 llama2&#xff08;选择合适的本地模型…

基于Springboot的职称评审管理系统

基于SpringbootVue的获取源码 联系方式 &#x1f447;&#x1f3fb;的设计与实现 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringbootMybatis工具&#xff1a;IDEA、Maven、Navicat 系统展示 用户登录 首页 评审条件 论坛信息 系统公告 后台登录…

多模态视觉语言模型:BLIP和BLIP2

1. BLIP BLIP: Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation BLIP的总体结构如下所示&#xff0c;主要包括三部分&#xff1a; 单模态编码器&#xff08;Image encoder/Text encoder&#xff09;&#xff1a;分别进…

【6】mysql查询性能优化-关联子查询

【README】 0. 先说结论&#xff1a;一般用inner join来改写in和exist&#xff0c;用left join来改写not in&#xff0c;not exist&#xff1b;&#xff08;本文会比较内连接&#xff0c;包含in子句的子查询&#xff0c;exist的性能 &#xff09; 1. 本文总结自高性能mysql 6…