Unity_PUN2多人联机API汇总

PUN2多人联机API汇总

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

服务器相关API和回调

c 复制代码
  #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

大厅相关API和回调

c 复制代码
 #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

房间相关API和回调

c 复制代码
  #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

PhotonNetwork相关

c 复制代码
  #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

PhotonStream相关

c 复制代码
  #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

更新显示房间列表

c 复制代码
  public override void OnRoomListUpdate(List<RoomInfo> roomList)
  {
    Debug.Log("打印所有房间信息");
    foreach (RoomInfo item in roomList)
    {
      Debug.Log(item.Name);
    }
  }
相关推荐
高兴蛋炒饭1 小时前
RouYi-Vue框架,环境搭建以及使用
前端·javascript·vue.js
吴梓穆1 小时前
Unity EasyAR入门教程
unity
m0_748240441 小时前
《通义千问AI落地—中》:前端实现
前端·人工智能·状态模式
ᥬ 小月亮1 小时前
Vue中接入萤石等直播视频(更新中ing)
前端·javascript·vue.js
神雕杨2 小时前
node js 过滤空白行
开发语言·前端·javascript
网络安全-杰克3 小时前
《网络对抗》—— Web基础
前端·网络
m0_748250743 小时前
2020数字中国创新大赛-虎符网络安全赛道丨Web Writeup
前端·安全·web安全
周伯通*3 小时前
策略模式以及优化
java·前端·策略模式
艾斯特_3 小时前
前端代码装饰器的介绍及应用
前端·javascript
Sokachlh3 小时前
【elementplus】中文模式
前端·javascript