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
大厅相关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
房间相关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
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
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
更新显示房间列表
public override void OnRoomListUpdate(List<RoomInfo> roomList){Debug.Log("打印所有房间信息");foreach (RoomInfo item in roomList){Debug.Log(item.Name);}}