I am trying to make a muzzle flash for a gun with the script below… If I don’t move my player at the start of the game, the particle system plays correctly. As soon as I move it though, the particle effect won’t play anymore. How can I fix this?
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Gun1 : MonoBehaviour
{
public float lookRadius = 10.0f;
public Transform target;
public GameObject gun;
public ParticleSystem muzzleFlash;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
float distance = Vector3.Distance(target.position, transform.position);
if (distance <= lookRadius)
{
if (Input.GetButtonDown("Fire1"))
{
Shoot();
}
}
if (distance <= lookRadius)
{
Vector3 direction = (target.position - transform.position).normalized;
Quaternion lookRotation = Quaternion.LookRotation(new Vector3(direction.x, 0, direction.z));
transform.rotation = Quaternion.Slerp(transform.rotation, lookRotation, Time.deltaTime * 5f);
}
}
void Shoot()
{
muzzleFlash.Play();
RaycastHit hit;
if (Physics.Raycast(gun.transform.position, gun.transform.forward, out hit))
{
Debug.Log(hit.transform.name);
}
}
void OnDrawGizmosSelected()
{
Gizmos.color = Color.blue;
Gizmos.DrawWireSphere(transform.position, lookRadius);
}
}