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