武器はプレイヤーオブジェクトの子オブジェクトで、子オブジェクトの武器はプレイヤーオブジェクトの一部と見なすことはできませんよね?したがって、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...
}
}