private void TargetFire(NetworkConnection conn, Vector3 position, double networkTime) { if (base.isServer) { return; } double timePassed = NetworkTime.time - networkTime; ProjectileNetwork p = Instantiate(_projectilePrefab, position, transform.rotation); p.Initialize((float)timePassed); }
private void CmdFire(Vector3 position, double networkTime) { double timePassed = NetworkTime.time - networkTime; ProjectileNetwork p = Instantiate(_projectilePrefab, transform.position + transform.forward, transform.rotation); p.Initialize((float)timePassed); foreach (KeyValuePair <int, NetworkConnectionToClient> item in NetworkServer.connections) { if (item.Value.connectionId == base.connectionToClient.connectionId) { continue; } TargetFire(item.Value, position + transform.forward, networkTime); } }
private void Fire() { if (!base.hasAuthority) { return; } if (!Input.GetKeyDown(KeyCode.Mouse0)) { return; } if (!base.isServer) { //run this on clients ProjectileNetwork p = Instantiate(_projectilePrefab, transform.position + transform.forward, transform.rotation); p.Initialize(0f); } //runs for everyone CmdFire(transform.position + transform.forward, NetworkTime.time); }