Files
real-shooter/Assets/Scripts/Weapons/Shooting.cs
Krazerleo b5aff44f79 Merge remote-tracking branch 'origin/lisin/character/2' into lisin/character/2
# Conflicts:
#	Assets/Prefabs/PlayerPrefab/Player.prefab
#	Assets/Scenes/Greatest_map_ever/Greatest_map_ever.unity
#	Assets/Scripts/Weapons/Shooting.cs
2022-05-17 00:25:31 +07:00

65 lines
1.9 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[RequireComponent(typeof(AudioSource))]
public class Shooting : MonoBehaviour
{
public GameObject raycast;
public GameObject firePoint;
//[SerializeField] private ParticleSystem projectilePrefab;
public ParticleSystem projectilePrefab;
private float hSliderValue = 0.1f;
private float _fireCountdown = 0.1f;
public GameObject gun;
public AudioSource audioSource;
private void Update()
{
HandleMouseButton();
}
private void HandleMouseButton()
{
if (Input.GetMouseButton(0) && _fireCountdown <= 0f)
{
_fireCountdown = 0;
_fireCountdown += hSliderValue;
PlayerShoot();
}
_fireCountdown -= Time.deltaTime;
}
private void PlayerShoot()
{
audioSource.Play();
Instantiate(projectilePrefab, firePoint.transform.position, firePoint.transform.rotation);
if (Physics.Raycast(raycast.transform.position,
raycast.transform.forward, out var hit,
SettingsReader.Instance.GetSettings.ViewDistance))
{
if (hit.transform.TryGetComponent<NPC>(out var target))
{
target.GetDamage(SettingsReader.Instance.GetSettings.RifleDamage);
}
}
}
public void Shoot()
{
if (Physics.Raycast(raycast.transform.position,
raycast.transform.forward, out var hit,
SettingsReader.Instance.GetSettings.ViewDistance))
{
if (hit.transform.TryGetComponent<NPC>(out var target))
{
Instantiate(projectilePrefab, firePoint.transform.position, firePoint.transform.rotation);
target.GetDamage(SettingsReader.Instance.GetSettings.RifleDamage);
}
}
}
}