【发布时间】:2020-01-07 03:14:58
【问题描述】:
我一直对其他客户端在玩家游戏中的行为有一些疑问。基本上,如果有影响每个客户的变化,它就会起作用。但是,它只会在本地播放器的屏幕上正确显示。其他玩家(他们出现在客户端屏幕上)保持不变。
例如,假设我将一个名为“test”的布尔值设置为 false。房间里的每个玩家同时将这个布尔值变为真。每个玩家自己的角色都将“测试”设置为 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”方法,因为我什至不确定这是否会完成。有什么想法吗?
【问题讨论】:
标签: c# unity3d multiplayer photon