using Animators.Leonid_Animator.Player; using UnityEngine; namespace Weapons { [RequireComponent(typeof(AudioSource))] [RequireComponent(typeof(InputHandler))] public class PlayerShooter : MonoBehaviour { public GameObject firePoint; public ParticleSystem projectilePrefab; private float _fireCountdown = 0.5f; private AudioSource _audioSource; private InputHandler _inputHandler; private void Awake() { _audioSource = GetComponent(); _inputHandler = GetComponent(); } private void Update() { HandleMouseButton(); } private void HandleMouseButton() { if (_inputHandler.firePressed && _fireCountdown <= 0f) { _fireCountdown = 0.5f; PlayerShoot(); } _fireCountdown -= Time.unscaledDeltaTime; } private void PlayerShoot() { _audioSource.Play(); Instantiate(projectilePrefab, firePoint.transform.position, firePoint.transform.rotation); if (Physics.Raycast(firePoint.transform.position, firePoint.transform.forward, out var hit, SettingsReader.Instance.GetSettings.ViewDistance)) { if (hit.transform.TryGetComponent(out var target)) { print($"did damage to {hit.transform.name}"); target.GetDamage(SettingsReader.Instance.GetSettings.RifleDamage); } } } } }