51 lines
1.1 KiB
Plaintext
51 lines
1.1 KiB
Plaintext
|
#if ENABLE_INPUT_SYSTEM && ENABLE_INPUT_SYSTEM_PACKAGE
|
||
|
#define USE_INPUT_SYSTEM
|
||
|
using UnityEngine.InputSystem;
|
||
|
using UnityEngine.InputSystem.Controls;
|
||
|
#endif
|
||
|
|
||
|
using UnityEngine;
|
||
|
|
||
|
|
||
|
public class PFX_ProjectilesWeapon : MonoBehaviour
|
||
|
{
|
||
|
public ParticleSystem[] ParticleSystems;
|
||
|
|
||
|
public float FireRate = 0.15f;
|
||
|
|
||
|
private bool _isButtonHold;
|
||
|
private float _time;
|
||
|
|
||
|
private void LateUpdate()
|
||
|
{
|
||
|
var ray = Camera.main.ScreenPointToRay(Input.mousePosition);
|
||
|
RaycastHit hit;
|
||
|
if (!Physics.Raycast(ray, out hit))
|
||
|
return;
|
||
|
|
||
|
var lookDelta = hit.point - transform.position;
|
||
|
var targetRot = Quaternion.LookRotation(lookDelta);
|
||
|
transform.rotation = targetRot;
|
||
|
|
||
|
#if ENABLE_LEGACY_INPUT_MANAGER
|
||
|
if (Input.GetMouseButtonDown(0))
|
||
|
_isButtonHold = true;
|
||
|
else if (Input.GetMouseButtonUp(0))
|
||
|
_isButtonHold = false;
|
||
|
#endif
|
||
|
|
||
|
_time += Time.deltaTime;
|
||
|
|
||
|
if (!_isButtonHold)
|
||
|
return;
|
||
|
|
||
|
if (_time < FireRate)
|
||
|
return;
|
||
|
|
||
|
foreach (var ps in ParticleSystems)
|
||
|
ps.Emit(1);
|
||
|
|
||
|
_time = 0;
|
||
|
}
|
||
|
}
|