Files
defrain-shooter-unity/Assets/Scripts/Weapons/Shoot.cs
2021-11-11 09:08:18 +01:00

60 lines
1.4 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Mirror;
public class Shoot : NetworkBehaviour
{
[SerializeField] GameObject muzzle;
[SerializeField] ProcedualAnimationController procedualAnimationController;
[SerializeField] float fireRate;
[SerializeField] GameObject gunHoldPos;
private void Start()
{
if (isLocalPlayer)
{
procedualAnimationController.OnSwitchWeapon(fireRate);
}
}
private void Update()
{
if (isLocalPlayer)
{
if (Input.GetKeyDown(KeyCode.Mouse0))
{
CmdFireBullet();
}
}
}
[Command]
// This code will be executed on the server.
private void CmdFireBullet()
{
GameObject dedplayer;
RaycastHit hit;
shootAnimation();
if (Physics.Raycast(muzzle.transform.position, muzzle.transform.forward, out hit))
{
if (hit.transform.gameObject.GetComponent<Player>() != null)
{
dedplayer = hit.transform.gameObject;
dedplayer.GetComponent<Player>().RemoveHealth(20);
}
}
}
[Client]
// This code will be executed on the Client.
void shootAnimation()
{
Debug.Log("Shooot animation in shoot script");
procedualAnimationController.Recoil(0.1f);
}
}