更新日期: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());}
}