【发布时间】:2019-03-25 01:13:34
【问题描述】:
我正在制作多人游戏,我想让玩家与非玩家对象交互(任何玩家都可以更改其变换)。当我与第一个加入的玩家(或主持的人)互动时,它正在工作,但如果我尝试与另一个玩家(第二个加入的人)互动,对象会回到第一个玩家离开的位置他在。
所以我尝试的是转移非玩家对象的权限,但我遇到了以下错误。 任何人都遇到同样的问题或知道任何其他方式来完成上述任务?我正在使用以下代码更改权限:
[Command]
void Cmd_AssignLocalAuthority(GameObject obj)
{
print("shifting authority successfully");
NetworkInstanceId nIns = obj.GetComponent<NetworkIdentity>().netId;
GameObject client = NetworkServer.FindLocalObject(nIns);
NetworkIdentity ni = client.GetComponent<NetworkIdentity>();
ni.AssignClientAuthority(connectionToClient);
}
[Command]
void Cmd_RemoveLocalAuthority(GameObject obj)
{
print("reverting authority successfully");
NetworkInstanceId nIns = obj.GetComponent<NetworkIdentity>().netId;
GameObject client = NetworkServer.FindLocalObject(nIns);
NetworkIdentity ni = client.GetComponent<NetworkIdentity>();
ni.RemoveClientAuthority(ni.clientAuthorityOwner);
}
我得到的错误是这个
【问题讨论】:
标签: unity3d multiplayer unity3d-unet unity-networking