OnConnectedToPhoton
<span style="color:#222222">/// <summary>
///建立与服务器的初始连接时调用。
/// </ summary>
/// <备注>
///此回调仅用于确定是否可以与服务器进行通信。
///在大多数情况下,OnFailedToConnectToPhoton()或OnDisconnectedFromPhoton()就足够了。
///调用此连接时建立低级别连接。
///此后,PUN将在后台发送AppID,用户和其他信息。
///此外,从主服务器移动到游戏服务器时不会调用它。
/// </ remarks>
void OnConnectedToPhoton(){}
</span>
OnLeftRoom
<span style="color:#222222">/// <summary>
///本地用户,在客户离开房间时调用。
/// </ summary>
/// <备注>
///当你离开房间时,PUN会将你带到主服务器。
///在使用大厅或进入(制作)房间之前,
///将再次调用OnJoinedLobby()或OnConnectedToMaster()。
/// </ remarks>
void OnLeftRoom(){}
</span>
OnMasterClientSwitched
<span style="color:#222222">/// <summary>
///在主客户端离开并切换到新的主客户端后调用。
///旧的主客户端已从播放器列表中删除。
/// </ summary>
/// <备注>
///当此客户端进入房间时,不会调用此回调。
/// </ remarks>
void OnMasterClientSwitched(PhotonPlayer newMasterClient){}
</span>
OnPhotonCreateRoomFailed
<span style="color:#222222">/// <summary>
///对CreateRoom()的调用失败时调用。
///可选参数提供错误代码和错误消息。
/// </ summary>
/// <备注>
///通常,“指定的房间名称已被使用。”
///如果PhotonNetwork.logLevel超过PhotonLogLevel.Informational,
/// PUN记录一些信息。
/// </ remarks>
void OnPhotonCreateRoomFailed(){}
void OnPhotonCreateRoomFailed(object [] codeAndMsg){
// codeAndMsg [0]是错误代码。(INT)
// codeAndMsg [1]是一个调试消息。(字符串)
}
</span>
OnPhotonJoinRoomFailed
<span style="color:#222222">/// <summary>
///对JoinRoom()的调用失败时调用。
///可选参数提供错误代码和错误消息。
/// </ summary>
/// <备注>
///经常有“房间不存在”,“已经满了”等。
///如果PhotonNetwork.logLevel超过PhotonLogLevel.Informational,
/// PUN记录一些信息。
/// </ remarks>
void OnPhotonJoinRoomFailed(){}
void OnPhotonJoinRoomFailed(object [] codeAndMsg){
// codeAndMsg [0]是错误代码。(INT)
// codeAndMsg [1]是一个调试消息。(字符串)
}
</span>
OnCreatedRoom
<span style="color:#222222">/// <summary>
///创建和进入房间时调用此客户端。
///在此之后,也会调用OnJoinedRoom()。
/// </ summary>
/// <备注>
///仅在创建房间的客户端(PhotonNetwork.CreateRoom)上调用此回调。
///客户端可以随时关闭(或断开连接),
///根据时间,不会调用OnCreatedRoom。
///
///如果您需要特定的房间属性或“启动信号”,
///让主客户端检查房间状态,
///实现OnMasterClientSwitched()是安全的。
/// </ remarks>
void OnCreatedRoom(){}
</span>
OnJoinedLobby
<span style="color:#222222">/// <summary>
///在主服务器上进入大厅时调用。
///更新房间列表时调用OnReceivedRoomListUpdate()。
/// </ summary>
/// <备注>
///注意:如果PhotonNetwork.autoJoinLobby为false,
/// OnConnectedToMaster()被调用,房间列表永远不可用。
///
///在大厅时,房间列表会定期自动更新。
///(间隔不能改变。)
/// </ remarks>
void OnJoinedLobby(){}
</span>
OnLeftLobby
<span style="color:#222222">/// <summary>
///离开大厅时叫。
/// </ summary>
/// <备注>
///(我不太了解。以下原文)
///当你离开大厅时,[CreateRoom](@ ref PhotonNetwork.CreateRoom)和[JoinRandomRoom](@ ref PhotonNetwork.JoinRandomRoom)
///自动引用默认大厅。
/// </ remarks>
void OnLeftLobby(){}
</span>
OnDisconnectedFromPhoton
<span style="color:#222222">/// <summary>
///与Photon服务器断开连接时调用。
/// </ summary>
/// <备注>
///在某些情况下,在OnDisconnectedFromPhoton()之前调用另一个回调。
///示例:OnConnectionFail()或OnFailedToConnectToPhoton()
/// </ remarks>
void OnDisconnectedFromPhoton(){}
</span>
OnConnectionFail
<span style="color:#222222">/// <summary>
///如果连接因任何原因失败,则调用OnDisconnectedFromPhoton()。
/// </ summary>
/// <备注>
///如果无法访问服务器,请改为OnFailedToConnectToPhoton()
调用///并将错误原因作为StatusCode提供。
/// </ remarks>
void OnConnectionFail(DisconnectCause cause){}
</span>
OnFailedToConnectToPhoton
<span style="color:#222222">/// <summary>
///在建立与Photon服务器的连接之前,如果连接调用失败,则调用此方法。
///在OnDisconnectedFromPhoton()之后调用。
/// </ summary>
/// <备注>
///(我不太了解。以下原文)
/// OnConnectionFail仅在首先建立与Photon服务器的连接时被调用。
/// </ remarks>
void OnFailedToConnectToPhoton(DisconnectCause cause){}
</span>
OnReceivedRoomListUpdate
<span style="color:#222222">/// <summary>
///更新房间列表时调用。
///新增和更新之间没有区别。
///仅在主服务器的大厅中调用此方法。
/// </ summary>
/// <备注>
///并非所有大厅类型都向客户提供房间列表通知。
///其中一些专注于服务器端匹配,一些是沉默的。
///
/// PUN可以通过PhotonNetwork.GetRoomList()获得房间列表。
///检索的每个项目都是包含自定义属性的RoomInfo。
///在大厅中创建房间时定义了这些信息。
/// </ remarks>
void OnReceivedRoomListUpdate(){}
</span>
OnJoinedRoom
<span style="color:#222222">/// <summary>
///进入房间时叫。(在房间创建或参与时)
///在所有客户端(包括主客户端)上调用此方法。
/// </ summary>
/// <备注>
///此方法通常用于生成玩家角色。
///如果你需要打电话“更积极”
///您可以使用PhotonView.RPC代替。
///
///当调用它时
///您是通过PhotonNetwork.playerList
///访问房间里的玩家
///您还可以通过Room.customProperties使用房间自定义属性。
///您可以通过Room.playerCount了解有多少人可以开始游戏。
/// </ remarks>
void OnJoinedRoom(){}
</span>
OnPhotonPlayerConnected
<span style="color:#222222">/// <summary>
///当远程播放器进入房间时调用。
///进入房间的玩家已经被添加到PhotonNetwork.playerList。
/// </ summary>
/// <备注>
///如果您的游戏以特定数字开头,则此回调非常有用。
///检查Room.playerCount,看看你是否可以启动它。
/// </ remarks>
void OnPhotonPlayerConnected(PhotonPlayer newPlayer){}
</span>
OnPhotonPlayerDisconnected
<span style="color:#222222">/// <summary>
///当远程播放器离开房间时调用。
///离开房间的玩家已被排除在PhotonNetwork.playerList之外。
/// </ summary>
/// <备注>
///如果您的客户调用PhotonNetwork.leaveRoom,
/// PUN在其余客户端上调用此方法。
///当远程客户端断开连接时
///几秒钟后超时后将调用此回调。
/// </ remarks>
void OnPhotonPlayerDisconnected(PhotonPlayer otherPlayer){}
</span>
OnPhotonRandomJoinFailed
<span style="color:#222222">/// <summary>
///对JoinRandom()的调用失败时调用。
///可选参数提供错误代码和错误消息。
/// </ summary>
/// <备注>
///通常,“所有房间都满了”“没有房间”。
///如果您使用多个大厅(通过JoinLobby或TypedLobby)
///其他大堂可能有无障碍房间。
///如果PhotonNetwork.logLevel超过PhotonLogLevel.Informational,
/// PUN记录一些信息。
/// </ remarks>
void OnPhotonRandomJoinFailed(){}
void OnPhotonRandomJoinFailed(object [] codeAndMsg){
// codeAndMsg [0]是错误代码。(INT)
// codeAndMsg [1]是一个调试消息。(字符串)
}
</span>
OnConnectedToMaster
<span style="color:#222222">/// <summary>
///使用PhotonNetwork.autoJoinLobby是假的,
///与主服务器的连接和身份验证完成时调用。
/// </ summary>
/// <备注>
///如果将PhotonNetwork.autoJoinLobby设置为true,
///而不是这个,调用OnJoinedLobby()。
///
///即使您不在大厅,也可以建立或加入一个房间。
///在这种情况下使用默认大厅。
///除非你在PhotonNetwork.joinLobby的大厅,
///可用房间列表不会更新。
/// </ remarks>
void OnConnectedToMaster(){}
</span>
OnPhotonSerializeView
<span style="color:#222222">/// <summary>
///已实现自定义PhotonView定期同步的数据。
///每次PhotonView观察到网络更新时调用。
/// </ summary>
/// <备注>
///在PhotonView监视的脚本上调用此方法。
/// PhotonNetwork.sendRateOnSerialize会影响调用此方法的频率。
/// PhotonNetwork.sendRate会影响此客户端发送包的频率。
///
///此方法的实现允许您自定义PhotonView定期同步的数据。
///您的代码可以定义从客户端发送的内容和收到的内容。
///
///与其他回调不同,它仅在Scripts设置为PhotonView.observed时调用。
///
/// PhotonStream对于使用此方法至关重要。
///客户端编写(PhotonStream.isWriting == true)和
///将读取端的客户端分开以发送/接收数据。
///
///如果你不写,PUN将跳过更新。
///这可以节省网络带宽。
///
///如果不发送,接收方应注意不调用OnPhotonSerializeView。
///因此,无法执行诸如“每x次接收”之类的处理。
/// </ remarks>
void OnPhotonSerializeView(PhotonStream流,PhotonMessageInfo信息){}
</span>
OnPhoton实例化
<span style="color:#222222">/// <summary>
///当PhotonNetwork.Instantiate生成GameObject(及其子节点)时调用。
/// </ summary>
/// <备注>
/// PhotonMessageInfo参数提供“who”创建“when”。
///(“when”基于PhotonNetworking.time。)
/// </ remarks>
void OnPhotonInstantiate(PhotonMessageInfo info){}
</span>
OnPhotonMaxCccuReached
<span style="color:#222222">/// <summary>
///由于CCU限制(临时)而断开与服务器的连接时调用。
/// </ summary>
/// <备注>
///如果发生这种情况,请在一定时间后再试一次。
///如果发生这种情况,您将无法进入房间,因为它已经断开连接。
///
///您可以通过应用新许可证或扩展订阅来提高CCU限制。
///当达到CCU限制时,PhotonCloud将向您发送电子邮件。
///您还可以检查网页上的仪表板。
/// </ remarks>
void OnPhotonMaxCccuReached(){}
</span>
OnPhotonCustomRoomPropertiesChanged
<span style="color:#222222">/// <summary>
///更改房间的自定义属性时调用。
/// ArgumentsThatChanged到Room.SetCustomProperties()
它包含///设置的所有属性。
/// </ summary>
/// <备注>
///从v1.25开始,这个方法有一个参数。(Hashtable propertiesThatChanged)
///即使在本地更改,也要更改自定义属性
///必须由Room.SetCustomProperties完成。
/// </ remarks>
void OnPhotonCustomRoomPropertiesChanged(Hashtable propertiesThatChanged){}
</span>
OnPhotonPlayerPropertiesChanged
<span style="color:#222222">/// <summary>
///当castap播放器属性发生变化时调用。
///播放器和修改后的属性作为object []传递。
/// </ summary>
/// <备注>
///从v1.25开始,这个方法有一个参数。(object [] playerAndUpdatedProps)
///这包含两个条目。
/// [0]是受影响的PhotonPlayer。
/// [1]是已修改属性的哈希表。
///(我们根据Unity的GameObject.SendMessage规范使用object []。)
///
///即使在本地更改,也要更改自定义属性
///必须由PhotonPlayer.SetCustomProperties完成。
/// </ remarks>
void OnPhotonPlayerPropertiesChanged(object [] playerAndUpdatedProps){
PhotonPlayer player = playerAndUpdatedProps [0]为PhotonPlayer;
Hashtable props = playerAndUpdatedProps [1]为Hashtable;
// ...
}
</span>
OnUpdatedFriendList
<span style="color:#222222">/// <summary>
///服务器为FindFriends请求更新PhotonNetwork.Friends,
///发送回复时调用。
/// </ summary>
/// <备注>
/// PhotonNetwork.Friends的朋友列表
///你可以获得名单,在线状态,房间(如果有的话)等等。
/// </ remarks>
void OnUpdatedFriendList(){}
</span>
OnCustomAuthenticationFailed
<span style="color:#222222">/// <summary>
///自定义身份验证失败并断开连接时调用。
/// </ summary>
/// <备注>
///由于用户输入或无效的令牌/机密,自定义身份验证可能会失败。
///如果验证成功,则不会调用此方法。
///实现OnJoinedLobby()或OnConnectedToMaster()(通常)。
///
///在游戏开发过程中,由于服务器端的抱歉配置,它可能会失败。
///在这种情况下,记录调试消息非常重要。
///
///除非您为应用设置了自定义身份验证(在仪表板上),否则不会调用此方法。
/// </ remarks>
void OnCustomAuthenticationFailed(string debugMessage){}
</span>
OnWebRpcResponse
<span style="color:#222222">/// <summary>
///当PUN收到WebRPC时调用。
///参见PhotonNetwork.WebRPC。
/// </ summary>
/// <备注>
///重要提示:如果Photon可以访问您的WebService,则response.ReturnCode为0。
///响应的内容是您的WebService发送的内容。
///您可以基于此创建WebResponse的实例。
///
///示例)WebRpcResponse webResponse = new WebRpcResponse(operationResponse);
///
///注意:OperationResponse类包含在以下命名空间中。
///使用ExitGames.Client.Photon;
///
/// Photon的OperationResponse.ReturnCode如下所示。
/// 0:好的
/// - 3:未设置Web服务。(检查仪表板,WebHooks)
/// - 5:Web服务当前没有RPC的路径/名称。(至少对于Azure)
/// </ remarks>
void OnWebRpcResponse(OperationResponse response){}
</span>
OnOwnershipRequest
<span style="color:#222222">/// <summary>
///对你来说,是PhotonView的当前所有者
///当其他玩家请求所有权时调用。
/// </ summary>
/// <备注>
/// viewAndPlayer包含两个条目。
/// [0]是目标PhotonView。
/// [1]是发出请求的PhotonPlayer。
/// </ remarks>
void OnOwnershipRequest(object [] viewAndPlayer){
PhotonView view = viewAndPlayer [0]为PhotonView;
PhotonPlayer的RequestPlayer = viewAndPlayer [1]为PhotonPlayer;
// ...
}</span>