为什么当我请求我的 Cmd 函数时我的 Rpc 函数被调用?
Why is my Rpc function called when I asked for my Cmd function?
这是我的问题,当我 运行 这段代码作为客户端时,
私有 IEnumerator Start()
{
if (isServer)
{
Debug.Log("je suis le serveur");
RpcAllowTeleportation();
}
else
{
Debug.Log("Je suis le client");
CmdAllowTeleportations();
}
}
[Command]
public void CmdAllowTeleportations()
{
Debug.Log("C'est passé par la fonction CmdAllowTeleportation");
if (!isLocalPlayer) { Teleportation.GetComponent<Teleport>().enabled = false; Debug.Log("cmd : it hasn't the authority"); }
else { Debug.Log("cmd : It has the authority"); }
}
[ClientRpc]
void RpcAllowTeleportation()
{
Debug.Log("C'est passé par la fonction RpcAllowTeleportation");
if (!hasAuthority) { Teleportation.GetComponent<Teleport>().enabled = false; Debug.Log("rpc : it hasn't the authority"); }
else { Debug.Log("rpc : It has the authority"); }
} ##
我有这些日志:
我的日志与代码完全不一致!你能帮帮我吗?
谢谢
因为Start
由服务器执行所以它调用
RpcAllowTeleportation();
因此在所有客户端上(所以你)RpcAllowTeleportation
被执行→您作为客户端看到 RpcAllowTeleportation
.
的日志
反之亦然,作为客户端,您永远不会看到来自 CmdAllowTeleportations
的日志,因为它是 [Command]
,仅在 服务器 上执行 →只有服务器会看到 CmdAllowTeleportations
.
的日志
这是我的问题,当我 运行 这段代码作为客户端时,
私有 IEnumerator Start()
{
if (isServer)
{
Debug.Log("je suis le serveur");
RpcAllowTeleportation();
}
else
{
Debug.Log("Je suis le client");
CmdAllowTeleportations();
}
}
[Command]
public void CmdAllowTeleportations()
{
Debug.Log("C'est passé par la fonction CmdAllowTeleportation");
if (!isLocalPlayer) { Teleportation.GetComponent<Teleport>().enabled = false; Debug.Log("cmd : it hasn't the authority"); }
else { Debug.Log("cmd : It has the authority"); }
}
[ClientRpc]
void RpcAllowTeleportation()
{
Debug.Log("C'est passé par la fonction RpcAllowTeleportation");
if (!hasAuthority) { Teleportation.GetComponent<Teleport>().enabled = false; Debug.Log("rpc : it hasn't the authority"); }
else { Debug.Log("rpc : It has the authority"); }
} ##
我有这些日志:
我的日志与代码完全不一致!你能帮帮我吗?
谢谢
因为Start
由服务器执行所以它调用
RpcAllowTeleportation();
因此在所有客户端上(所以你)RpcAllowTeleportation
被执行→您作为客户端看到 RpcAllowTeleportation
.
反之亦然,作为客户端,您永远不会看到来自 CmdAllowTeleportations
的日志,因为它是 [Command]
,仅在 服务器 上执行 →只有服务器会看到 CmdAllowTeleportations
.