コード例 #1
0
 /// <summary>
 /// 发送信息
 /// </summary>
 /// <param name="message"></param>
 public void SendMessage(string message)
 {
     if (connectionState != ConnectionState.OFFLINE)
     {
         //这里记得检查抛出异常,不然玩家人数减少后会导致连接中断
         try
         {
             ViewT.getInstance(ViewTIndex).SendMessage(message);
         }
         catch (Exception)
         {
             Debug.Log("Error in FNet.SendMessage. Now UpdatePlayers...");
             UpdatePlayers();
         }
     }
 }
コード例 #2
0
 /// <summary>
 /// 结束时间轴
 /// </summary>
 public void EndPlaying()
 {
     if (connectionState != ConnectionState.OFFLINE)
     {
         //这里记得检查抛出异常,不然玩家人数减少后会导致连接中断
         try
         {
             ViewT.getInstance(ViewTIndex).EndPlaying();
         }
         catch (Exception)
         {
             Debug.Log("Error in FNet.EndPlaying. Now UpdatePlayers...");
             UpdatePlayers();
         }
     }
 }
コード例 #3
0
 /// <summary>
 /// 有玩家登录时更新玩家列表
 /// </summary>
 public void UpdatePlayers()
 {
     if (connectionState != ConnectionState.OFFLINE)
     {
         //这里记得检查抛出异常,不然玩家人数减少后会导致连接中断
         try
         {
             ViewT.getInstance(ViewTIndex).visitNickname(e =>
             {
                 playerNicknames.Clear();
                 foreach (var pair in e)
                 {
                     // pair.Key为玩家sessionID
                     playerNicknames.Add(pair.Value.nickname, pair.Key);
                 }
                 Debug.Log("Player Num: " + playerNicknames.Count);
             });
         }
         catch (Exception) { Debug.Log("Error in FNet.UpdatePlayers"); }
     }
 }
コード例 #4
0
 /// <summary>
 /// 登录后将聊天室注册到服务器
 /// </summary>
 public void RegisterChatroom()
 {
     if (connectionState != ConnectionState.OFFLINE)
     {
         //这里记得检查抛出异常,不然玩家人数减少后会导致连接中断
         try
         {
             ViewT.getInstance(ViewTIndex).registerListener("lastMessage", e =>
             {
                 if (e.type == ViewChangedType.REPLACE || e.type == ViewChangedType.TOUCH)
                 {
                     ChatManager.Instance.messageServer = e.value.ToString();
                 }
             });
         }
         catch (Exception)
         {
             Debug.Log("Error in FNet.RegisterChatroom");
         }
     }
 }
コード例 #5
0
 /// <summary>
 /// 更新游戏状态
 /// </summary>
 public void UpdateState()
 {
     if (connectionState != ConnectionState.OFFLINE)
     {
         //这里记得检查抛出异常,不然玩家人数减少后会导致连接中断
         try
         {
             ViewT.getInstance(ViewTIndex).visitIsPlaying(e =>
             {
                 if (e)
                 {
                     connectionState = ConnectionState.PLAYING;
                 }
                 else
                 {
                     connectionState = ConnectionState.MAIN;
                 }
             });
         }
         catch (Exception) { Debug.Log("Error in FNet.UpdateState. Now UpdatePlayers..."); }
     }
 }
コード例 #6
0
        /// <summary>
        /// 获取指定角色Hp
        /// </summary>
        /// <param name="nickname"></param>
        public int GetHp(string nickname)
        {
            int hp = 0;

            if (connectionState != ConnectionState.OFFLINE)
            {
                //这里记得检查抛出异常,不然玩家人数减少后会导致连接中断
                try
                {
                    ViewT.getInstance(ViewTIndex).visitHp(e =>
                    {
                        hp = e[playerNicknames[nickname]].hp;
                    });
                }
                catch (Exception)
                {
                    Debug.Log("Error in FNet.GetHp. Now UpdatePlayers...");
                    UpdatePlayers();
                }
            }
            return(hp);
        }
コード例 #7
0
        /// <summary>
        /// 获取指定玩家的位置
        /// </summary>
        /// <param name="nickname"></param>
        /// <returns></returns>
        public Vector3 GetPosition(string nickname)
        {
            Vector3 pos = Vector3.zero;

            if (connectionState != ConnectionState.OFFLINE)
            {
                //这里记得检查抛出异常,不然玩家人数减少后会导致连接中断
                try
                {
                    ViewT.getInstance(ViewTIndex).visitPosition(e =>
                    {
                        var positionServer = e[playerNicknames[nickname]].position;
                        pos = new Vector3(positionServer.x, 0, positionServer.y);
                    });
                }
                catch (Exception)
                {
                    Debug.Log("Error in FNet.GetPosition. Now UpdatePlayers...");
                    UpdatePlayers();
                }
            }
            return(pos);
        }