0

Weapon是玩家对象的子对象,子对象Weapon不能被视为玩家对象的一部分,对吧?所以,我需要使用 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...
    }
}
4

2 回答 2

1

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

于 2016-03-25T15:50:08.947 回答
0

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

所以,只有根游戏对象有ClientAuthority发送Command到服务器。这个游戏对象下的子对象没有ClientAuthority

这里有更多关于.NetworkIndentity

于 2016-03-26T14:39:37.923 回答