一、需求目标
- 在 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
{
public TextMeshProUGUI TimeText01;
public TextMeshProUGUI TimeText02;
public DateTime NowSystemTime;
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 = NowSystemTime.Year + "年" + NowSystemTime.Month + "月" + NowSystemTime.Day + "日"
+ NowSystemTime.Hour + ":" + NowSystemTime.Minute + ":" + NowSystemTime.Second;
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!