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);
    }
  }
相关推荐
cs_dn_Jie8 分钟前
钉钉 H5 微应用 手机端调试
前端·javascript·vue.js·vue·钉钉
开心工作室_kaic42 分钟前
ssm068海鲜自助餐厅系统+vue(论文+源码)_kaic
前端·javascript·vue.js
有梦想的刺儿1 小时前
webWorker基本用法
前端·javascript·vue.js
cy玩具1 小时前
点击评论详情,跳到评论页面,携带对象参数写法:
前端
qq_390161772 小时前
防抖函数--应用场景及示例
前端·javascript
John.liu_Test3 小时前
js下载excel示例demo
前端·javascript·excel
Yaml43 小时前
智能化健身房管理:Spring Boot与Vue的创新解决方案
前端·spring boot·后端·mysql·vue·健身房管理
PleaSure乐事3 小时前
【React.js】AntDesignPro左侧菜单栏栏目名称不显示的解决方案
前端·javascript·react.js·前端框架·webstorm·antdesignpro
哟哟耶耶3 小时前
js-将JavaScript对象或值转换为JSON字符串 JSON.stringify(this.SelectDataListCourse)
前端·javascript·json
getaxiosluo3 小时前
react jsx基本语法,脚手架,父子传参,refs等详解
前端·vue.js·react.js·前端框架·hook·jsx