Пример #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(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()));
            }
        }
Пример #2
0
        public void ConnectMethod()
        {
            rc            = new RemoteClient(ml);
            rc.msgHandler = (KBEngine.Packet packet) => {
                var proto = packet.protoBody as GCPlayerCmd;
                var cmds  = proto.Result.Split(' ');
                if (cmds[0] == "Login")
                {
                    myId = Convert.ToInt32(cmds[1]);
                }
            };
            rc.evtHandler = EvtHandler;

            rc.Connect("127.0.0.1", 10001);
        }