/// <summary> /// Displays the tutorial timeline animation sequence and fires off start game when finished /// </summary> public static void DisplayTutorial(socketHandler handler) { AddCommand(() => { GameObject.Find("Canvas").transform.Find("tutorial").gameObject.SetActive(true); PlayableDirector director = GameObject.Find("tutorialTimeline").GetComponent <PlayableDirector>(); director.Play(); director.stopped += (dir) => { handler.EmitStartGame(); }; }); }
/// <summary> /// 以指定的本机端口初始化服务器socket链接,并分别新开1个所有客户端的socket管理线程和1个所有客户端的socket消息监听线程 /// </summary> /// <param name="ip">本机ip</param> /// <param name="port">机端口号</param> /// <param name="listenNum">允许的最大客户端连接数</param> /// <param name="listenFailHandler">监听端口失败时执行的委托</param> /// <param name="manageThreadHandler">管理客户端连接的所有socket集合的线程</param> /// <param name="listenThreadHandler">监听客户端消息的线程</param> /// <param name="errorMessageHandler">监听消息失败时执行的委托</param> /// <param name="succMessageHandler">收到客户端消息时执行的委托</param> /// <param name="ClientSocketList">客户端连接的所有socket集合的对象</param> public void socketServerInit(string ip, int port, int listenNum, stringHandler listenFailHandler, socketHandler socketHandler1, threadHandler manageThreadHandler, threadHandler listenThreadHandler, stringHandler errorMessageHandler, stringHandler succMessageHandler, List<Socket> ClientSocketList) { object[] object1 = startSocketServer(ip, port, listenNum); Socket StartSocket = (Socket)object1[0]; //监听端口失败 if (StartSocket == null) { listenFailHandler((string)object1[1]); return; } socketHandler1(StartSocket); manageConnectClient(ClientSocketList, StartSocket, manageThreadHandler, listenThreadHandler, errorMessageHandler, succMessageHandler); }
/// <summary> /// 以指定ip和端口初始化客户端的socket连接,连接成功后会新增一个线程监听服务器的消息 /// </summary> /// <param name="ip">服务器ip</param> /// <param name="port">服务器端口</param> /// <param name="connectFailHanlder">socket连接失败时执行的委托,参数为string</param> /// <param name="currentSocketHandler">socket连接成功时执行的委托,参数为socket</param> /// <param name="listenThreadHandler">监听消息线程的委托,参数为thread</param> /// <param name="errorMessageHandler">socket接收消息失败时执行的委托,参数为string</param> /// <param name="succMessageHandler">初始化成功后,接收到消息时执行的委托,参数为string</param> public void socketClientInit(string ip, int port, string encode, stringHandler connectFailHanlder, socketHandler currentSocketHandler, threadHandler listenThreadHandler, stringHandler errorMessageHandler, stringHandler succMessageHandler) { object[] object1 = connectToSocketServer(ip, port); Socket ClientSocket = (Socket)object1[0]; //判断建立连接是否失败 if (ClientSocket == null) { connectFailHanlder((string)object1[1]); return; } //建立连接成功后返回该socket对象,用于发送和接收消息 currentSocketHandler(ClientSocket); //使用该socket对象监听服务器链接 clentListenSocketMessage(ClientSocket, encode, (listenMessageThread) => { listenThreadHandler(listenMessageThread); }, (receiveExc) => { errorMessageHandler(receiveExc); }, (result) => { succMessageHandler(result); }); }