我目前正在制作一个Unity Multiplayer游戏,该游戏依赖于服务器和单个客户端之间变量的同步。我已经可以使用[SyncVar]将服务器中的变量与客户端进行同步,但不能反过来。问题是,我没有在游戏中生成的玩家预制物。我仍然可以进行Command和RPC调用吗?我在下面尝试了此代码,但在玩游戏时最终没有起作用。网络消息是否适合我的情况?
bool officeBought = false;
void Update () {
if (!isServer)
{
CmdSendBuildingBought(officeBought);
}
}
[Command]
public void CmdSendBuildingBought(bool buildingBought)
{
buildingBought = true;
}
答案 0 :(得分:0)
正如derHugo所说,您需要在游戏BUT上实例化至少一个PlayerObject:
如果您不需要它,则不必使用它,但是您至少需要在现场实例化一个,以将“ Authority”分配给要进行CMD / RPC调用的对象。
有关Unet Authority的更多信息,请参见: https://docs.unity3d.com/Manual/UNetAuthority.html
还让我建议我针对这个特定问题提出的另一个答案,因为我认为这将是您的下一步: Problem in authority shifting of non-player object