Unity3D获取当前系统时间并在UI界面中显示


一、需求目标

  • 在 Unity3D 中获取当前系统时间,并在 UI TMP 中显示

二、解决方案

1.创建两个 TMP 文本框游戏对象

  • 如下图所示,我们创建了两个 TMP 游戏对象,名称分别为 SystemTimeText 01, SystemTimeText 02
    在这里插入图片描述

2.创建 C# 脚本

  • 如下图所示,我们创建了一个名为 SystemTime 的脚本文件
    在这里插入图片描述
    SystemTime 脚本文件代码如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
using TMPro;

public class SystemTime : MonoBehaviour
{
    
    
    // 创建两个 TextMeshProUGUI 的类,名为 TimeText01,TimeText02
    public TextMeshProUGUI TimeText01;
    public TextMeshProUGUI TimeText02;
    // 创建 DateTime 类型的时间对象 NowSystemTime
    public DateTime NowSystemTime;
    // 创建一个当前时间字符串变量 NowTime_Str
    private string NowTime_Str;

    // 实时获取当前系统时间 并转化为字符串格式
    void System_Time_Get()
    {
    
    
        // 获取当前时间
        NowSystemTime = DateTime.Now.ToLocalTime();
        // 转换为字符串格式
        NowTime_Str = string.Format("{0:D}{1:D}{2:D}{3:D}{4:D}{5:D}",
            NowSystemTime.Year, NowSystemTime.Month, NowSystemTime.Day, NowSystemTime.Hour, NowSystemTime.Minute, NowSystemTime.Second);
    }

    void Update()
    {
    
    
        System_Time_Get();
        // TimeText01.text 显示 "2022年8月16日10:20:36"
        TimeText01.text = NowSystemTime.Year + "年" + NowSystemTime.Month + "月" + NowSystemTime.Day + "日" 
            + NowSystemTime.Hour + ":" + NowSystemTime.Minute + ":" + NowSystemTime.Second;
        // TimeText02.text 显示 "2022816102036"
        TimeText02.text = NowTime_Str;
    }
}

3.脚本链接 TMP 游戏对象

  • 这里为了方便,我直接将 C# 脚本链接在了 Canvas 上
  • 并且将 SystemTimeText 01 对象链接在了 TimeText01 上,将 SystemTimeText 02 对象链接在了 TimeText02 上
    在这里插入图片描述

三、测试结果

  • 运行工程我们可以发现在 TMP 文本框中已经正常显示了我们的系统时间
  • 上面为 SystemTimeText 01 文本框显示,数值是通过 DateTime 类型的 NowSystemTime 中的 Year、Month、Day、Hour、Minute、Second 来获取的
  • 下面为 SystemTimeText 02 文本框显示,数据为转换成字符串的 NowTime_Str 显示的
    在这里插入图片描述

Good Luck!

猜你喜欢

转载自blog.csdn.net/weixin_46992165/article/details/126358648