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