#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.新建场景。

 

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

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

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

 

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);
    }
  }
}

 

 

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

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

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

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

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

 

#region Introduction
此工程位于Github,遵从MPLv2.0协议,请根据需求使用。Pull完记得点个Star!
文章仅作抛砖引玉之用,希望能够借此给予寻求思路的开发者们一些灵感。
此教程系列曾属于“Unity The Great”,但由于“Tone Tune Tookit”的诞生,开发组决定将两个系列进行合并。
如果内容中出现了语混序乱、错鳖字、缺少标点符号的情况还请见谅
互联网精神永存。
Hooray!!!
#endregion

#region Developer
[团队代言人博客]
// https://www.cnblogs.com/mirzkisd1ex0/
[开发者邮箱]
// dearisaacyang@outlook.com
[开发者微信]
// wxid_63t8w3035kvp22
[开发者企鹅]
// 2957047371
#endregion

posted on 2021-07-30 14:58  MirzkisD1Ex0  阅读(172)  评论(0编辑  收藏  举报