#region Environment

Windows 10 21H1

Unity 2020.3.15f1c1 LTS

VSCode 1.58.2

// ToneTune Toolkit 下载地址

// https://github.com/MirzkisD1Ex0/ToneTuneToolkit.git

#endregion

 

插件注释:

因为从网络上获取时间戳需要解析json,因此需要引用Newtonsoft库(用字典而不引用库也可以)。

放弃使用WWW,而选择了使用UnityWebRequest-Get。

 

从网络获取时间戳:由Taobao提供时间戳,然后用Newtonsoft解析json,debug出时间戳及转换后的日期。

从本地获取时间戳:获取系统时间戳,debug出时间戳及转换后的日期。

内容不多,但希望能够帮到诸位。

 

01.新建场景。

[ToneTuneToolkit][002]获取时间戳及日期时间转换_解析json

 

02.新建脚本,呃……还要挂上TTT插件内的TimestampCapturer脚本。

  从本地获取时间戳是静态方法,可以直接从类中调用,如果只需要从本地获取时间戳的话,这个脚本不需要挂在对象上。

  但从网络获取时间戳需要用到协程,无法(也许是编写者技艺不精)写成静态方法,所以为了调用协程,把TimestampCapturer写成了单例。

[ToneTuneToolkit][002]获取时间戳及日期时间转换_解析json_02

 

03.新建脚本内容如下,需要引用TTT插件的Common,用到了TimestampCapturer功能和DataConverter功能。



using UnityEngine;


using System;


using ToneTuneToolkit.Common;


namespace Examples


{


  /// <summary>


  /// 


  /// </summary>


  public class TC : MonoBehaviour


  {


    private void Start()


    {


      TimestampCapturer.Instance.GetNetTimestamp();


      long localTimestamp = TimestampCapturer.GetLocalTimestamp();


      DateTime dt = DataConverter.ConvertTimestamp2DateTime(localTimestamp);


      Debug.Log("Local Date: " + dt + " = " + localTimestamp);


    }


  }


}


[ToneTuneToolkit][002]获取时间戳及日期时间转换_时间戳_03

 

 

04.确保脚本正确添加后启动场景,上方的红圈中显示的是系统时间给予的时间戳及转换过后的日期,TTT Notice中显示的是从网络中请求得到的时间戳及转换过后的日期。

  具体实现方法可以参见插件内的脚本。

  由第三步的代码中可见,本地获取时间戳不需要通过协程,也没有网络请求的步骤,所以localTimestamp可以在接收到返回值后立刻进行下一步操作,

  但从网络中获取时间戳的话,无法立刻从协程中获取返回值,强行操作只会null报错……除非把后续的代码全都写在协程中,等wait结束后再进行下一步。

  有关协程和网络请求的问题对编写者产生了很大的困扰。

[ToneTuneToolkit][002]获取时间戳及日期时间转换_网络请求_04

 

#region Introduction

此工程位于Github,遵从MPLv2.0协议,请根据需求使用。Pull完记得点个Star!

文章仅作抛砖引玉之用,希望能够借此给予寻求思路的开发者们一些灵感。

此教程系列曾属于“Unity The Great”,但由于“Tone Tune Tookit”的诞生,开发组决定将两个系列进行合并。

如果内容中出现了语混序乱、错鳖字、缺少标点符号的情况还请见谅

互联网精神永存。

Hooray!!!

#endregion