C# Unity3D光子在本地播放器断开连接之前调用方法
我有一个方法,当在其他地方调用或通过ui按钮调用时,它工作得非常好 我遇到了这个问题: 我需要在本地玩家断开连接之前调用此方法。 如果我使用“OnPhotonPlayerDisconnected()”它不能正常工作,因为它是从远程播放器而不是本地调用的 我还测试了“OnLeftRoom()”方法,但它甚至没有调用 我的方法是:C# Unity3D光子在本地播放器断开连接之前调用方法,c#,unity3d,multiplayer,photon,C#,Unity3d,Multiplayer,Photon,我有一个方法,当在其他地方调用或通过ui按钮调用时,它工作得非常好 我遇到了这个问题: 我需要在本地玩家断开连接之前调用此方法。 如果我使用“OnPhotonPlayerDisconnected()”它不能正常工作,因为它是从远程播放器而不是本地调用的 我还测试了“OnLeftRoom()”方法,但它甚至没有调用 我的方法是: public void ReleaseSlot() { Slots[slotIndex] = true; Hashtable SlotManagerHas
public void ReleaseSlot()
{
Slots[slotIndex] = true;
Hashtable SlotManagerHashtable = new Hashtable();
SlotManagerHashtable.Add("teamslot" + slotIndex.ToString(), false);
PhotonNetwork.room.SetCustomProperties(SlotManagerHashtable, null, false);
alreadyJoined = false;
}
本地客户端与所有光子服务器断开连接的双关回调方法是
OnDisconnectedFromPhoton()
。
如果调用此方法,则本地客户机需要首先重新连接到光子服务器,以便能够调用任何其他操作
当local客户端离开房间时,双关回调方法是
OnLeftRoom()
。如果调用此方法,则本地客户端将无法再调用文件室内的任何操作,如设置属性
,这正是您试图通过PhotoNetwork.room.SetCustomProperties
执行的操作
远程客户端离开房间时的双关回调方法是
OnPhotonPlayerDisconnected(PhotonPlayer播放器)
在断开与光子的连接(或OnLeftRoom()
后,无法执行释放槽中的逻辑。另一方面,如果您想在玩家决定明确离开房间之前调用此命令,您将不会处理玩家非自愿离开房间时意外断开连接的情况
所以当一名球员离开房间时,你需要改变你释放球队位置(或更新分数?!)的方式。您需要从剩下的一个玩家(最好是主客户端)执行此操作。但是,当主客户端离开后房间变空时,将不会留下任何人呼叫ReleaseSlot
。当然,这是在这种情况下需要处理的
因此,PhotonPlayerDisconnected上的是一个很好的候选者
如果你错过了,我的同事Tobias已经发布了。本地客户机与所有光子服务器断开连接的双关回调方法是OnDisconnectedFromPhoton()
。
如果调用此方法,则本地客户机需要首先重新连接到光子服务器,以便能够调用任何其他操作
当local客户端离开房间时,双关回调方法是OnLeftRoom()
。如果调用此方法,则本地客户端将无法再调用文件室内的任何操作,如设置属性
,这正是您试图通过PhotoNetwork.room.SetCustomProperties
执行的操作
远程客户端离开房间时的双关回调方法是OnPhotonPlayerDisconnected(PhotonPlayer播放器)
在断开与光子的连接(
或OnLeftRoom()
后,无法执行释放槽中的逻辑。另一方面,如果您想在玩家决定明确离开房间之前调用此命令,您将不会处理玩家非自愿离开房间时意外断开连接的情况
所以当一名球员离开房间时,你需要改变你释放球队位置(或更新分数?!)的方式。您需要从剩下的一个玩家(最好是主客户端)执行此操作。但是,当主客户端离开后房间变空时,将不会留下任何人呼叫ReleaseSlot
。当然,这是在这种情况下需要处理的
因此,PhotonPlayerDisconnected上的是一个很好的候选者
如果你错过了,我的同事Tobias已经发布了。你也尝试过OnDisconnectedFromPhoton吗?我之前尝试过,方法甚至没有调用。你也尝试过OnDisconnectedFromPhoton吗?我之前尝试过,方法甚至没有调用。你需要从离开的玩家那里识别插槽号(otherPlayer
)在通过Unity的mono消息触发的OnPhotonPlayerDisconnected(PhotonPlayerOtherPayer)
中,只需将其置于任何游戏对象上的任何MonoBehavior上,就像其他回调一样。因此,这应该添加到每个播放器中。是,但仅当PhotonNetwork.isMasterClient
为true
时,才调用'PhotonNetwork.room.SetCustomProperties'。选择从MasterClient执行此操作只有一个目的:是从单个客户端而不是所有客户端执行此操作。您需要从通过Unity的mono消息触发的OnPhotonPlayerDisconnected(PhotonPlayer otherPayer)
中离开的玩家(otherPlayer
)中识别插槽号,所以只要把它放在任何游戏对象上的任何单一行为上,就像其他回调一样。因此,这应该添加到每个播放器中。是,但仅当PhotonNetwork.isMasterClient
为true
时,才调用'PhotonNetwork.room.SetCustomProperties'。选择从MasterClient执行此操作只有一个目的:从单个客户端而不是所有客户端执行此操作。