我在其他客户在玩家游戏中的行为方面遇到了一些问题。基本上,如果有影响到每个客户的变更,它将起作用。但是,它将仅正确显示在本地播放器的屏幕上。其他播放器(显示在客户的屏幕上)保持不变。
例如,假设我有一个布尔值“ test”设置为false。房间中的每个玩家都必须同时将此布尔值设为true。每个玩家自己的角色的“测试”设置为true,但是本地玩家屏幕上的其他客户端将其布尔值显示为false。
我如何经历以下每个玩家的示例:
foreach (var item in PhotonNetwork.PlayerList)
{
var itemPhotonView = (PhotonView)item.TagObject;
itemPhotonView.RPC("SetPlayerTeam", item, citiString);
}
我希望上面的代码能够遍历每个字符,即使不是本地玩家也是如此。我相信它可以实现,但我不确定100%。
public override void OnPlayerPropertiesUpdate(Player target, ExitGames.Client.Photon.Hashtable changedProps) { if (changedProps.ContainsKey("team")) { var targetPhotonView = (PhotonView)target.TagObject; targetPhotonView.RPC("ChangeTeamObjs", target, changedProps); } }
我确定上面的代码不会更改非本地客户端。我不确定是否应该像第一个示例那样使用“ foreach”方法,因为我什至不确定这样做是否可以实现。有什么想法吗?
我在其他客户在玩家游戏中的行为方面遇到了一些问题。基本上,如果有影响到每个客户的变更,它将起作用。但是,它只会正确显示在...
通过将rpc的目标定义为所有人,可以以更有效的方式向所有人发送rpc,这将防止网络流量过载,并且仅发送一个rpc。