如何在 NetworkIdentity.AssignClientAuthority 中获取用作参数的连接

How to get the connection used as parameter in NetworkIdentity.AssignClientAuthority

Weapon是player对象的子对象,Weapon子对象不能算是player对象的一部分吧?所以,我需要使用 NetworkIdentity.AssignClientAuthority() 给非玩家对象本地权限。

public class Weapon: NetworkBehaviour 
{
    void Start()
    {
         // how to get the conn?
         GameObject.GetComponent<NetworkIdentity>().AssignClientAuthority(conn);
    }

    void Update()
    {
        CmdShot();
    }

    [Command]
    void CmdShot()
    {
         // shot...
    }
}

在客户端,您可以使用 NetworkClient.connection 获取连接。在服务器上,所有当前活动连接的列表在 NetworkServer.connections 中可用。两者都包含对象 NetworkConnection,该对象用作 AssignClientAuthority.

的参数

NetworkIndentity组件必须在根游戏对象上,并且在预制件中只能有一个。

所以,只有root gameobject有ClientAuthority发送Command给server.The这个gameobject下的子对象没有ClientAuthority

here 更多关于 NetworkIndentity