Unity 在Editor下保存对Text组件的文本的修改

Unity 在Editor下保存对Text组件的文本的修改

在这里插入图片描述

/****************************************************
    文件:TimeStampForText.cs
	作者:lenovo
    邮箱: 
    日期:2024/8/8 1:9:21
	功能:
*****************************************************/

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using Random = UnityEngine.Random;
using System;
using System.Text;


#if UNITY_EDITOR
using UnityEditor; 
using UnityEditorInternal;

//01 UI会插入该组件后面,比如一个Button会生成在TimeStampForTextMono下  
//02 https://blog.csdn.net/UnityCC0526/article/details/135679648
[CustomEditor(typeof(TimeStampForTextMono))]
public class TimeStampForTextEditor :  Editor
{
    static string _tmp;
    //重写OnInspectorGUI类(刷新Inspector面板)
    public override void OnInspectorGUI()
    {
        base.OnInspectorGUI();
        TimeStampForTextMono mono= (TimeStampForTextMono)target;
        bool useTimeStamp = false;//不适合眼睛看
        if (GUILayout.Button("更新时间戳"))
        {
            DateTime nowDt = DateTime.Now;
            if (!useTimeStamp)
            {
                string after = (mono.gameObject.name + nowDt);
                mono.Text.text = after.ToString();
            }
            else
            {
                string afterTimeStamp = nowDt.DateTime2TimeStamp().ToString();
                string after = (mono.gameObject.name + afterTimeStamp);
                mono.Text.text = after.ToString();
            }
          
            EditorUtility.SetDirty(mono.Text); //不加无法保存在Editor的修改结果
        }
    }


}

#endif


public class TimeStampForTextMono : MonoBehaviour
{ 
      public Text Text { get {  return GetComponent<Text>();} }

}





引申的拓展

public static partial class ExtendDateTime //时间戳与DateTime  //https://www.jb51.net/article/232705.htm
{
    public static int DateTime2TimeStamp(this DateTime now)
    {
        int ts = Convert.ToInt32((now - TheFirstYearOfAnEra()).TotalSeconds);
        return ts;
    }


    public static DateTime TimeStamp2DateTime(this long timeStamp)
    { 
         DateTime preDateTime =  TimeZone.CurrentTimeZone.ToLocalTime(TheFirstYearOfAnEra());
        long nowTimeStamp = timeStamp * 10000000;
        TimeSpan nowTimeSpan=new TimeSpan(nowTimeStamp);
        DateTime newDateTime = preDateTime.Add(nowTimeSpan);
        return newDateTime;


    }

    public static DateTime TimeStamp2DateTime(this int timeStamp)
    {
        long after = (long)timeStamp;
        return timeStamp.TimeStamp2DateTime();
    }

    public static DateTime TimeStamp2DateTime(this string timeStamp)
    {
        long after = long.Parse(timeStamp);
        return timeStamp.TimeStamp2DateTime();
    }

    static DateTime TheFirstYearOfAnEra()
    {
        return new DateTime(1970, 1, 1, 8, 0, 0);
    }

}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值