Моя проблема: у меня есть игрок, который включает в себя объект оружия, а мой объект оружия включает в себя следующий скрипт:
private void FixedUpdate()
{
AutomaticFirearmShoot();
}
public void AutomaticFirearmShoot()
{
if (Input.GetButton("Fire1") && Time.time > _nextFire)
{
_nextFire = Time.time + _fireRate;
_player.GetComponent<NetworkShootManager>().CmdShoot();
}
}
Мой корневой проигрыватель также включает этот скрипт:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;
public class NetworkShootManager : NetworkBehaviour
{
private void Update()
{
if (!isLocalPlayer)
{
return;
}
}
[Command]
public void CmdShoot()
{
Debug.Log("shooting");
}
}
Поэтому, когда я собираю игру, только хост-игрок может вызывать метод CmdShoot
.
Кроме того, у моего плеера есть компонент идентификации сети.