当前位置: 首页 > news >正文

资源网站快速优化排名wordpress无法显示此页

资源网站快速优化排名,wordpress无法显示此页,wordpress4.7.5中文版,门户网站开发需要多少钱无后端高效获取网络时间的组件 废话不多说#xff0c;直接上源码m_NowSerivceTime 一个基于你发行游戏地区的时间偏移#xff0c; 比如北京时区就是 8, 巴西就是-3#xff0c;美国就是-5using Newtonsoft.Json; 如果这里报错#xff0c; 就说明项目没有 NewtonsoftJson插件… 无后端高效获取网络时间的组件 废话不多说直接上源码m_NowSerivceTime 一个基于你发行游戏地区的时间偏移 比如北京时区就是 8, 巴西就是-3美国就是-5using Newtonsoft.Json; 如果这里报错 就说明项目没有 NewtonsoftJson插件 没关系这里你改成Unity内置的就行总之就一句 没有必要就直接使用NTPComponent.m_NowUtc, 有时区要求就用 NTPComponent.m_NowSerivceTime, 总之优势在我原理 这块没必要看如果有同学有兴趣可以继续看看 废话不多说直接上源码 直接新建一个脚本 NTPComponent.cs 将脚本Copy到你的项目拖入场景节点上 获取UTC时间 NTPComponent.m_NowUtc using UnityEngine; using System; using System.Collections; using UnityEngine.Networking; using Newtonsoft.Json; using System.Globalization;namespace GameContent {/// summary/// 启动游戏后将所有地址列表遍历/// /summary[DisallowMultipleComponent]public class NTPComponent : MonoBehaviour{/// summary/// 网络时间是否生效中/// /summarypublic static bool m_IsValid { get; private set; } true;/// summary/// 当前Utc时间/// /summarypublic static DateTime m_NowUtc{get{return m_NowUtcServerDate.AddSeconds( ( int ) ( Time.unscaledTime - m_ServerTimePoint ) );}private set{m_NowUtcServerDate value;}}/// summary/// 当前服务器时间/// /summarypublic static DateTime m_NowSerivceTime{get{return m_NowUtc.AddHours( GlobalConfig.TIME_ZONE_OFFSET );}}/// summary/// 服务器标记时间对象/// /summaryprivate static DateTime m_NowUtcServerDate;/// summary/// 拉取服务器的标记时间尺/// /summaryprivate static float m_ServerTimePoint 0f;/// summary/// 是否已经成功拉取到服务器时间/// /summaryprivate bool m_Inited false;private void Awake( ){m_NowUtc DateTime.UtcNow;m_ServerTimePoint Time.unscaledTime;DontDestroyOnLoad( gameObject );}private void Start( ){ #if !SANDBOX_MODEStartCoroutine( GetNetTimeFromWorldTimeApi() );StartCoroutine( GetNetTimeFromTimeIOApi() );StartCoroutine( GetNetTimeFromGoogleApi() );#elseLog.Green( $当前是沙盒环境你可以更改时间 {DateTime.Now} ); #endif}#region WebApiIEnumerator GetApi( string api, Actionstring callback ){using ( var request UnityWebRequest.Get( https://worldtimeapi.org/api/timezone/Etc/UTC ) ){yield return request.SendWebRequest();try{if ( request.result UnityWebRequest.Result.Success ){callback( request.downloadHandler.text );}//else//{// Debug.LogError( $Failed to fetch server time: {request.error} );//}}catch ( Exception e ){//不处理}}}struct WorldTimeData{public string datetime;public string timezone;public string utc_offset;}struct TimeIOData{public int year;public int month;public int day;public int hour;public int minute;public int seconds;public string dateTime;public string timeZone;public string dayOfWeek;public bool dstActive;}IEnumerator GetNetTimeFromWorldTimeApi( ){string result string.Empty;yield return GetApi( https://worldtimeapi.org/api/timezone/Etc/UTC, _ result _ );if ( !string.IsNullOrEmpty( result ) ){var data JsonConvert.DeserializeObjectWorldTimeData( result );Debug.Log( $World Time: {data.datetime} );if ( TryParseUTCString( data.datetime, out var utcNow ) utcNow ! DateTime.MinValue ){OnPullServerTimeOK( utcNow );}}}IEnumerator GetNetTimeFromTimeIOApi( ){string result string.Empty;yield return GetApi( https://timeapi.io/api/Time/current/zone?timeZoneUTC, _ result _ );if ( !string.IsNullOrEmpty( result ) ){var data JsonConvert.DeserializeObjectTimeIOData( result );Debug.Log( $Time IO API: {data.dateTime} );if ( TryParseUTCString( data.dateTime, out var utcNow ) utcNow ! DateTime.MinValue ){OnPullServerTimeOK( utcNow );}}}IEnumerator GetNetTimeFromGoogleApi( ){using ( var request UnityWebRequest.Get( https://www.google.com ) ){yield return request.SendWebRequest();try{if ( request.result UnityWebRequest.Result.Success ){if ( request.GetResponseHeader( Date ) ! null ){string serverDate request.GetResponseHeader( Date );Debug.Log( $Google Server Time: {serverDate} );var utcDate ParseServerDateToUTC( serverDate );if ( utcDate ! DateTime.MinValue ){OnPullServerTimeOK( utcDate );}}}}catch ( Exception e ){//不处理}}}#endregion#region Common/// summary/// Parses a UTC time string into a DateTime object./// /summary/// param nameutcStringThe UTC time string./param/// returnsA DateTime object in UTC, or DateTime.MinValue if parsing fails./returnspublic static bool TryParseUTCString( string utcString, out DateTime utcNow ){try{// Attempt to parse the string with DateTime.ParseDateTime parsedDate DateTime.Parse( utcString, null, DateTimeStyles.AdjustToUniversal | DateTimeStyles.AssumeUniversal );utcNow parsedDate;return true;}catch ( FormatException ){Debug.Log( Failed to parse UTC time string. );utcNow DateTime.MinValue;return false;}}/// summary/// Parses a server date string (from HTTP header) into a UTC DateTime object./// /summary/// param nameserverDateThe server date string in RFC1123 format./param/// returnsA DateTime object in UTC./returnspublic static DateTime ParseServerDateToUTC( string serverDate ){try{// Use DateTime.ParseExact to parse RFC1123 formatDateTime parsedDate DateTime.ParseExact(serverDate,r, // r or R stands for RFC1123 patternCultureInfo.InvariantCulture,DateTimeStyles.AssumeUniversal | DateTimeStyles.AdjustToUniversal);return parsedDate;}catch ( FormatException ex ){Debug.Log( $Error parsing server date: {ex.Message} );return DateTime.MinValue; // Return MinValue to indicate failure}}/// summary/// 当服务器拉取到时间后调用 锁定一次/// /summary/// param nameutcTime/paramprivate void OnPullServerTimeOK( DateTime utcTime ){if ( m_Inited ) return;m_Inited true;StopAllCoroutines();m_ServerTimePoint Time.unscaledTime;m_NowUtc utcTime;Log.Green( $获取服务器时间成功: {utcTime} );}#endregion} } m_NowSerivceTime 一个基于你发行游戏地区的时间偏移 比如北京时区就是 8, 巴西就是-3美国就是-5 具体根项目运营确认 //这个就是一个全局的定义自己写一个类或者 写死一个也行 GlobalConfig.TIME_ZONE_OFFSET 8; using Newtonsoft.Json; 如果这里报错 就说明项目没有 NewtonsoftJson插件 没关系这里你改成Unity内置的就行 改成 JsonUtility.FromJson( result ); //Unity 内置的Json库 总之就一句 没有必要就直接使用NTPComponent.m_NowUtc, 有时区要求就用 NTPComponent.m_NowSerivceTime, 总之优势在我 原理 这块没必要看如果有同学有兴趣可以继续看看 真实时间由两个部分组成 一个是请求一次得到的 真实云UTC时间 另外一个是当前游戏的秒数TimePoint 通过 基数 秒数偏移。 能在游戏内断网的时候有效获取到真实的云时间 需要注意的是在游戏启动的时候你得确保用户是联网的 当然如果你的游戏是纯单机的也不会报错因为在Awake的时候默认用的是本地的TimePoint如果你用纯单机也就不需要考虑真实的时间 这里是能保证你的项目能在任何条件下安全的跑起来 在游戏启动的时候获取一个 UTC时间 基数 然后记录当前的游戏运行时间 Time.unscaledTime 获取当前真实的UTC时间时 UTC时间 基数 ( 当前游戏运行时间 - 记录时间 ) 秒数偏移
http://www.w-s-a.com/news/531612/

相关文章:

  • 浙江手机版建站系统哪个好怎样黑进别人的网站
  • 企业网站搜索引擎推广方法装修网络公司
  • 网站运营优化建议wordpress 添加媒体
  • 用asp.net做网站计数器施工企业会计的内涵
  • 网站被黑咋样的网站建设 设计业务范围
  • 网站开发学哪种语言网站编辑器失效
  • WordPress插件提示信息江阴网站优化
  • 网站开发用的软件如何做网站内容管理
  • 扬州网站建设公司网站推广是什么岗位
  • 双线网站管理咨询公司是做什么
  • asia域名的网站贵州光利达建设工程有限公司局网站
  • 梅州南站济南做网络安全的公司
  • 网站源代码 phpseo营销推广费用
  • 南京专业制作网站深圳整装装修公司排名
  • 网站制作在哪里比较好网页设计的要点有哪些
  • 自己做网站原始代码高端品牌服装
  • 九度企业网站推广软件龙泉市建设局网站
  • 做个企业网网站怎么做专业3合1网站建设公司
  • 龙岩网站建设teams熊掌号公司网站的实例
  • 电商模板网站免费省级精品课程网站建设
  • 网站建设的规划书桂林生活最新网
  • 广东省建设工程执业中心网站wordpress的分类目录和标签
  • 甘肃省两学一做专题网站广东外发加工网
  • 用python导入wordpress公司网络优化方案
  • 效益成本原则网站建设wordpress 上传rar
  • 大连网站制作 连城传媒渠道网络公司官网
  • 电影天堂网站用什么程序做的wordpress 添加链接地址
  • 购买空间网站哪个好重庆英文网站建设
  • 建设网站需要注意什么问题设计网页通常使用什么语言
  • 彩票网站建设要多少钱西安英文网站建设