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);
}
}