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

Unity 实现数字垂直滚动效果

Unity 实现数字垂直滚动效果

  • 前言
  • 项目
    • 场景布置
    • Shader代码编写
    • 材质球设置
    • 代码编写
    • 数字图片

前言

遇到一个需要数字垂直滚动模拟老虎机的效果,记录一下。
数字垂直滚动

项目

场景布置

3个Image换上带有RollNumberShader的材质
RollNumberScript脚本中引用即可
场景布置

Shader代码编写

shader连线

材质球设置

材质球设置

代码编写

RollNumberScript.cs

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

public class RollNumberScript : MonoBehaviour
{
    //个位数
    public GameObject singleDigitNumber;
    //十位数
    public GameObject tenDigitNumber;
    //百位数
    public GameObject hundredDigitNumber;


    private Material singleDigitMaterial;
    private Material tenDigitMaterial;
    private Material hundredDigitMaterial;

    void Start()
    {
        singleDigitMaterial = singleDigitNumber.GetComponent<Image>().material;
        tenDigitMaterial = tenDigitNumber.GetComponent<Image>().material;
        hundredDigitMaterial = hundredDigitNumber.GetComponent<Image>().material;
    }

    void Update()
    {
        if (Input.GetKey(KeyCode.Q))
        {

            int num = Random.Range(100, 1000);
            SetNumber(num);
        }
    }

    private void SetNumber(int number)
    {
        int hundredDigit = number / 100;
        int tenDigit = (number - hundredDigit * 100) / 10;
        int singleDigit = number - hundredDigit * 100 - tenDigit * 10;


        //这里加一个动画效果,让数字滚动
        //动画时间
        float duration = 0.3f;
        //动画曲线
        Ease tweenEase = Ease.OutQuart;

        //百位数
        hundredDigitMaterial.DOFloat(hundredDigit, "_NumberValue", duration).SetEase(tweenEase);
        //十位数
        tenDigitMaterial.DOFloat(tenDigit, "_NumberValue", duration).SetEase(tweenEase);
        //个位数
        singleDigitMaterial.DOFloat(singleDigit, "_NumberValue", duration).SetEase(tweenEase);
    }
}

数字图片

横着竖着都可以,9宫格也可以
数字图片


http://www.kler.cn/a/388149.html

相关文章:

  • 字节跳动核心技术:TT推荐系统从0-1落地应用
  • 蓝凌OA-EKP hrStaffWebService 任意文件读取漏洞
  • 项目模块十七:HttpServer模块
  • SQL50题
  • Vue中优雅的使用Echarts的三种方式
  • Pandas | 数据分析时将特定列转换为数字类型 float64 或 int64的方法
  • 高性能分布式缓存Redis-高级应用篇章
  • HTML的文本样式(二)
  • 阿里 Sentinel
  • 【C++】新手入门指南
  • core-js 解决浏览器兼容性问题的工具之一
  • Rust: 利用 chrono 库实现日期和字符串互相转换
  • Spring学习笔记(二)
  • scrapy爬取中信证券销售金融产品信息
  • git tag
  • PCIE板卡:基于国产化双FPGA主板的高性能解决方案
  • HTTP Cookie深入解析:Web会话追踪的秘密
  • 平安科技(外包)面试分享
  • 介绍一下strcpy函数(c基础)
  • Git 入门篇(一)
  • dom4j实现xml转map,xml转json字符串
  • 【IEEE/EI会议/南邮主办】第六届机器人、智能控制与人工智能国际学术会议(RICAI 2024)
  • Oracle 第25章:Oracle GoldenGate
  • 斗破QT编程入门系列之前言:认识Qt:获取与安装(四星斗师)
  • 13-鸿蒙开发中的综合实战:华为登录界面
  • 机器学习系列----介绍前馈神经网络和卷积神经网络 (CNN)