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