// using System.Collections;
|
// using System.Collections.Generic;
|
// using UnityEngine;
|
// using System;
|
|
// public class CreateOrSelectRoleState : NetState
|
// {
|
// const int OVERTIME_THRESHOLD = 12;
|
// bool connectedDetecting = false;
|
|
// NetworkReachability m_NetWorkReachability = NetworkReachability.ReachableViaCarrierDataNetwork;
|
// NetworkReachability netWorkReachability {
|
// get { return m_NetWorkReachability; }
|
// set {
|
// if (m_NetWorkReachability != value)
|
// {
|
// m_NetWorkReachability = value;
|
// DetectConnected(3);
|
// }
|
// }
|
// }
|
|
// public override void OnEnter()
|
// {
|
// m_NetWorkReachability = Application.internetReachability;
|
// // NetLinkWin.Hide();
|
// base.OnEnter();
|
// }
|
|
// protected override void Update()
|
// {
|
// if (GameNetSystem.Instance.netState != GameNetSystem.NetState.CreateOrSelectRole)
|
// {
|
// return;
|
// }
|
|
// if (connectedDetecting)
|
// {
|
// return;
|
// }
|
|
// if (GameNetSystem.Instance.timeSinceMainSocketLastProtocol > OVERTIME_THRESHOLD)
|
// {
|
// DetectConnected(3);
|
// }
|
// else if (!GameNetSystem.Instance.mainSocketConnected)
|
// {
|
// DetectConnected(3);
|
// }
|
// else
|
// {
|
// #if UNITY_IOS && !UNITY_EDITOR
|
// netWorkReachability = Application.internetReachability;
|
// #endif
|
// }
|
// }
|
|
// public override void OnExit()
|
// {
|
// if (clock != null)
|
// {
|
// Clock.Stop(clock);
|
// }
|
// clock = null;
|
// base.OnExit();
|
// }
|
|
// Clock clock;
|
// private void DetectConnected(int _seconds)
|
// {
|
// connectedDetecting = true;
|
|
// var sendInfo = new C0104_tagCOnlineReturn();
|
// sendInfo.Type = 0;
|
// GameNetSystem.Instance.SendInfo(sendInfo);// 在线回应
|
|
// if (clock != null)
|
// {
|
// Clock.Stop(clock);
|
// }
|
// clock = Clock.AlarmAt(DateTime.Now + new TimeSpan(_seconds * TimeSpan.TicksPerSecond), OnDetectEnd);
|
// }
|
|
// private void OnDetectEnd()
|
// {
|
// connectedDetecting = false;
|
|
// var isDisconnected = false;
|
// #if UNITY_IOS && !UNITY_EDITOR
|
// isDisconnected = GameNetSystem.Instance.timeSinceMainSocketLastProtocol > 3f;
|
// #else
|
// isDisconnected = !GameNetSystem.Instance.mainSocketConnected
|
// || GameNetSystem.Instance.timeSinceMainSocketLastProtocol > OVERTIME_THRESHOLD;
|
// #endif
|
|
// if (isDisconnected)
|
// {
|
// switch (Application.internetReachability)
|
// {
|
// case NetworkReachability.NotReachable:
|
// GameNetSystem.Instance.Disconnect();
|
// WindowCenter.Instance.Open<DisconnectHintWin>();
|
// break;
|
// case NetworkReachability.ReachableViaCarrierDataNetwork:
|
// case NetworkReachability.ReachableViaLocalAreaNetwork:
|
// GameNetSystem.Instance.Reconnect();
|
// break;
|
// }
|
// }
|
// }
|
|
// private void OnApplicationPause(bool pause)
|
// {
|
// if (GameNetSystem.Instance.netState != GameNetSystem.NetState.CreateOrSelectRole)
|
// {
|
// return;
|
// }
|
|
// if (!pause)
|
// {
|
// DetectConnected(3);
|
// }
|
// }
|
|
// }
|