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);
    }
  }
相关推荐
vipbic3 小时前
别再把“做个H5”挂嘴边了:这个词,官方压根就没有定义过
前端
ZC跨境爬虫5 小时前
跟着 MDN 学CSS day_39:(Flexbox 弹性盒子核心机制)
前端·css·ui·html·tensorflow
小陈同学呦5 小时前
前端如何处理订单状态导航的数据竞态问题
前端·javascript
喵个咪5 小时前
GoWind Toolkit 前端代码生成|Vue3(ElementPlus/Vben)、React(AntDesign)全自动一键生成教程
前端·vue.js·react.js
摆烂大大王7 小时前
玩转 OpenClaw:用 TaskFlow + Heartbeat 打造自动化工作流
前端·人工智能·自动化
zhangxingchao7 小时前
AI 大模型核心六:量化、Workflow 与 Agent、多轮 RAG
前端·人工智能·后端
梦想的颜色7 小时前
TypeScript 完全指南(上):从零开始掌握类型系统
前端·typescript
之歆7 小时前
Day01_ES6+ 专业指南:从基础到实战的现代JavaScript开发(下)
前端·javascript·es6
lichenyang4538 小时前
鸿蒙 MVVM 实战:从 Demo 到工程化,聊聊登录、状态管理与埋点系统设计
前端
IT_陈寒8 小时前
Vite打包时遇到的坑,原来问题出在这里
前端·人工智能·后端