更新日期:2025年8月6日。
Github 仓库:https://github.com/SaiTingHu/HTFramework
Gitee 仓库:https://gitee.com/SaiTingHu/HTFramework
索引
- 一、UDateTime可序列化日期时间
- 1.定义UDateTime字段
- 2.日期拾取器(编辑器)
- 3.UDateTimeField组件
- ①.创建UDateTimeField组件
- ②.UDateTimeField组件属性详解
- 4.日期拾取器(运行时)
- ①.创建日期拾取器(运行时)
- ②.关联日期拾取器(运行时)
- ③.打开日期拾取器(运行时)
- 5.日期时间处理
一、UDateTime可序列化日期时间
众所周知System.DateTime
在Unity中是不可序列化的,比如定义了如下该字段:
public class Test : HTBehaviour
{public System.DateTime dateTime;
}
在Inspector
面板是不可见且不可序列化的:
但是,替换为UDateTime
后,将解决这个痛点。
1.定义UDateTime字段
将上文的System.DateTime
替换为UDateTime
字段:
public class Test : HTBehaviour
{public UDateTime dateTime;
}
然后回到Inspector
面板,可以看到UDateTime
已经正确显示为了日期时间:
2.日期拾取器(编辑器)
在Inspector
面板点击UDateTime
字段,将弹出日期拾取器(编辑器)
:
日期拾取器(编辑器)
界面可选择年份
、月份
、日期
、小时
、分钟
、秒
等日期时间参数,且可选择日期的显示格式
:
不过需注意,修改后的显示格式
只应用于该字段:
3.UDateTimeField组件
类似于InputField
组件,UDateTimeField
组件用于在运行时输入、修改、显示日期时间。
①.创建UDateTimeField组件
在Hierarchy
界面点击鼠标右键,选择HTFramework -> UI -> UDateTime Field菜单创建一个UDateTimeField
组件:
②.UDateTimeField组件属性详解
CaptionText:显示日期时间字符串的Text。
Value:此组件的日期时间值。
Picker:此组件关联的日期拾取器。
PickerPos:打开日期拾取器的初始位置。
4.日期拾取器(运行时)
点击UDateTimeField
字段,将打开日期拾取器(运行时)
用于编辑日期时间。
不过在此之前,必须要先创建一个日期拾取器(运行时)
。
①.创建日期拾取器(运行时)
在Hierarchy
界面点击鼠标右键,选择HTFramework -> UI -> UDateTime Picker菜单创建一个日期拾取器(运行时)
:
②.关联日期拾取器(运行时)
将新创建的日期拾取器(运行时)
关联到UDateTimeField
组件的Picker
字段:
当然,你也可以不这样做,如果
Picker
为空,在运行时它会尝试搜寻场景中任意日期拾取器(运行时)
。
③.打开日期拾取器(运行时)
此时,在运行时点击该UDateTimeField
组件,将自动打开日期拾取器(运行时)
:
5.日期时间处理
UDateTime
支持与System.DateTime
进行转换以进行日期时间处理:
public class Test : HTBehaviour
{public UDateTime dateTime;protected override void Awake(){base.Awake();System.DateTime time = dateTime.ToDateTime();Debug.Log(time.ToString());dateTime.FromDateTime(System.DateTime.Now);Debug.Log(dateTime.ToString());}
}