示例#1
0
        IEnumerator InitConnect()
        {
            if (rc != null)
            {
                rc = null;
                yield return(new WaitForSeconds(2));
            }

            //玩家自己模型尚未初始化准备完毕则不要连接服务器放置Logic之后玩家的ID没有设置
            while (ObjectManager.objectManager.GetMyPlayer() == null)
            {
                yield return(null);
            }
            //重新构建新的连接
            rc            = new RemoteClient(ml);
            rc.evtHandler = EvtHandler;
            rc.msgHandler = MsgHandler;

            rc.Connect(ClientApp.Instance.remoteServerIP, ClientApp.Instance.remotePort);
            while (lastEvt == RemoteClientEvent.None && state == WorldState.Connecting)
            {
                yield return(null);
            }
            Debug.LogError("StartInitData: " + lastEvt);
            MyEventSystem.PushEventStatic(MyEvent.EventType.RemoteReConnect);
            if (lastEvt == RemoteClientEvent.Connected)
            {
                state = WorldState.Connected;
                //初始化数据
                yield return(StartCoroutine(InitData()));

                //开始匹配
                yield return(StartCoroutine(StartMatch()));
            }
            else
            {
                Debug.LogError("Connect Lost To Server");
            }
        }
示例#2
0
        /// <summary>
        /// 协程改造的Connect和Send函数
        /// </summary>
        /// <returns>The connect.</returns>
        IEnumerator InitConnect()
        {
            if (rc != null)
            {
                rc = null;
                yield return(new WaitForSeconds(2));
            }

            //玩家自己模型尚未初始化准备完毕则不要连接服务器放置Logic之后玩家的ID没有设置
            while (ObjectManager.objectManager.GetMyPlayer() == null)
            {
                yield return(null);
            }
            //重新构建新的连接
            rc            = new RemoteClient(ml);
            rc.evtHandler = EvtHandler;
            rc.msgHandler = MsgHandler;

            rc.Connect(ServerIP, 10001);
            while (lastEvt == RemoteClientEvent.None && state == WorldState.Connecting)
            {
                yield return(null);
            }
            Debug.LogError("StartInitData: " + lastEvt);
            if (lastEvt == RemoteClientEvent.Connected)
            {
                state = WorldState.Connected;
                yield return(StartCoroutine(InitData()));

                yield return(StartCoroutine(SendCommandToServer()));
            }
            else
            {
                //StartCoroutine(RetryConnect());
            }
        }
示例#3
0
 //设置发送Ready
 //当所有的Ready之后Master 会发送一个Go状态
 public void InitMap()
 {
     rc = NetMatchScene.Instance.rc;
     StartCoroutine(SendReady());
 }