• Unity_PUN2多人联机API汇总


    PUN2多人联机API汇总

    代码仅为函数区别和属性展示,并不针对指定功能
    按照需要调用即可

    服务器相关API和回调

      #region 服务器相关
      public void 连接服务器()
      {
        PhotonNetwork.ConnectUsingSettings();
        PhotonNetwork.GameVersion = "1";
      }
      public void 离开服务器()
      {
        PhotonNetwork.Disconnect();
      }
      public override void OnConnectedToMaster()
      {
        Debug.Log("加入服务器时回调");
      }
      public override void OnConnected()
      {
        Debug.Log("连接到服务器时回调");
      }
      public override void OnDisconnected(DisconnectCause cause)
      {
        Debug.Log("离开服务器时回调");
      }
      #endregion
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    大厅相关API和回调

     #region 大厅相关
      public void 加入大厅()
      {
        PhotonNetwork.JoinLobby();
        PhotonNetwork.CurrentLobby.Name = "山西一区";
        Debug.Log(PhotonNetwork.CurrentLobby.Name);
        Debug.Log(PhotonNetwork.CurrentLobby.Type); //大厅类型
      }
      public void 离开大厅()
      {
        PhotonNetwork.LeaveLobby();
      }
      public void 大厅()
      {
        TypedLobby tl = new TypedLobby("山西一区",LobbyType.Default); //创建大厅
        Debug.Log(tl.Name); // 大厅名字
        Debug.Log(tl.Type); //大厅类型
      }
      public void 大厅信息()
      {
        //大厅的子类
        TypedLobbyInfo tli = new TypedLobbyInfo();
        Debug.Log(tli.PlayerCount);//当前大厅内的玩家数
        Debug.Log(tli.RoomCount);  //当前大厅内的房间数
      }
      public override void OnJoinedLobby()
      {
        Debug.Log("加入大厅时回调");
      }
      public override void OnLeftLobby()
      {
        Debug.Log("离开大厅时回调");
      }
      #endregion
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34

    房间相关API和回调

      #region 房间相关
      public void 创建房间()
      {
        RoomOptions ro = new RoomOptions();
        ro.IsOpen = true;
        ro.IsVisible = true;
        ro.MaxPlayers = 4;
        if (PhotonNetwork.CreateRoom("谢同学测试房间", ro))
        {
          Debug.Log("手动调用创建房间函数 ");
        }
      }
      public void 加入房间()
      {
        PhotonNetwork.JoinRoom("谢同学测试房间");
      }
      public void 离开房间()
      {
        PhotonNetwork.LeaveRoom();
      }
      public void 房间选项()
      {
        //用于创建房间
        RoomOptions ro = new RoomOptions();
        ro.IsVisible = true;                    //是否可见
        ro.IsOpen = true;                       //是否可以加入
        ro.MaxPlayers = 4;                      //最大人数设置
        ro.PlayerTtl = 1;                       //玩家断线超时删除时间
        ro.EmptyRoomTtl = 1;                    //空房间超时删除时间
        ro.CustomRoomProperties = null;         //自定义房间属性
        ro.CustomRoomPropertiesForLobby = null; //大厅中列出的自定义房间属性。
        ro.PublishUserId = true;                //房间内是否公开名字
        ro.BroadcastPropsChangeToAll = true;    //广播属性给所有玩家
      }
      public void 房间信息()
      {
        //用于大厅房间列表
        RoomInfo ri = null;
        Debug.Log(ri.RemovedFromList); //房间满了是否继续从列表中移除
        Debug.Log(ri.masterClientId);  //显示房主信息
        Debug.Log(ri.CustomProperties);//显示房间属性
        Debug.Log(ri.Name);           //显示房间名
        Debug.Log(ri.PlayerCount);    //显示当前房间人数
        Debug.Log(ri.MaxPlayers);     //显示房间最大人数
        Debug.Log(ri.IsOpen);         //显示房间是否公开
      }
      public void 房间()
      {
        //房间信息的子类
        Room ri = null;
        Debug.Log(ri.IsOffline);                  //是否离线
        Dictionary<int, Player> tmp = ri.Players; //房间中的玩家
        string[] tmp2 = ri.ExpectedUsers;         //预期加入的玩家列表,提前分配机票
    
      }
      public override void OnCreatedRoom()
      {
        Debug.Log("创建房间成功时回调");
      }
      public override void OnCreateRoomFailed(short returnCode, string message)
      {
        Debug.Log("创建房间失败时回调");
      }
      public override void OnJoinedRoom()
      {
        Debug.Log("加入房间时回调");
        Debug.Log("房间当前人数:" + PhotonNetwork.CurrentRoom.PlayerCount);
        PhotonNetwork.LoadLevel("Game");
      }
      public override void OnJoinRoomFailed(short returnCode, string message)
      {
        Debug.Log("加入房间失败时回调");
      }
      public override void OnLeftRoom()
      {
        Debug.Log("离开房间时调用");
      }
      public override void OnPlayerEnteredRoom(Player newPlayer)
      {
        Debug.Log(newPlayer.NickName + "进入了服务器");
      }
      #endregion
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82

    PhotonNetwork相关

      #region PhotonNetwork相关
      public void 光子网络相关()
      {
        Debug.Log(PhotonNetwork.ServerAddress); //服务器地址
        Debug.Log(PhotonNetwork.CloudRegion);   //服务器区域
        Debug.Log(PhotonNetwork.AppVersion);    //应用版本
        Debug.Log(PhotonNetwork.GameVersion);   //游戏版本
        Debug.Log(PhotonNetwork.InRoom);        //是否在房间内
        Debug.Log(PhotonNetwork.InLobby);       //是否在大厅内
        Debug.Log(PhotonNetwork.IsConnected);   //是否连接服务器
        Debug.Log(PhotonNetwork.IsConnectedAndReady);//是否连接服务器并已准备
        Debug.Log(PhotonNetwork.IsMasterClient);//是否为主机
        Debug.Log(PhotonNetwork.LocalPlayer.NickName) ;//本地玩家名字
        Debug.Log(PhotonNetwork.MasterClient);  //返回主机玩家
        Debug.Log(PhotonNetwork.NetworkClientState);//网络客户端状态
        Debug.Log(PhotonNetwork.NickName);      //本机名字
        Debug.Log(PhotonNetwork.OfflineMode);
        Debug.Log(PhotonNetwork.PhotonServerSettings);
        Debug.Log(PhotonNetwork.PlayerList);
      }
      #endregion
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    PhotonStream相关

      #region PhotonStream相关
      public void PhotonStream相关()
      {
        PhotonStream ps = new PhotonStream(true,new object[1]);
        object o1 = new object();
        Debug.Log(ps.IsReading); //是否可读
        Debug.Log(ps.IsWriting); //是否可写,只有本机才可以写
        Debug.Log(ps.Count);     //数量
        Debug.Log(ps.ReceiveNext());
        Debug.Log(ps.PeekNext());
      }
      #endregion
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    更新显示房间列表

      public override void OnRoomListUpdate(List<RoomInfo> roomList)
      {
        Debug.Log("打印所有房间信息");
        foreach (RoomInfo item in roomList)
        {
          Debug.Log(item.Name);
        }
      }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
  • 相关阅读:
    【语言模型生成分子更好】Language models can learn complex molecular distributions
    Prometheus入门与实战
    C专家编程 第7章 对内存的思考 7.2 Intel 80x86内存模型以及它的工作原理
    使用llvm 编译最新的linux 内核(LoongArch)
    全栈开发性能优化基础第六单元日考技能
    SQL Server查询结果导出到EXCEL表格
    delaunay和voronoi图 人脸三角剖分
    图像相似度对比分析软件,图像相似度计算方法
    Ajax——跨域解决
    图片上的字怎么去掉?尝试下这几种简单操作方法
  • 原文地址:https://blog.csdn.net/qq1291594496/article/details/136691650