using System.Collections.Generic;
using UnityEngine;
public class ParticleEmitter : MonoBehaviour
{
public ParticleSystem _up;
public ParticleSystem _down;
public ParticleSystem _right;
public ParticleSystem _left;
public float _force = 10f;
Rigidbody _rb;
List\u0026lt;Vector3\u0026gt; _dirs = new List\u0026lt;Vector3\u0026gt;();
void Start()
{
_rb = GetComponent\u0026lt;Rigidbody\u0026gt;();
_up.maxParticles = 1000;
_up.Stop();
_down.maxParticles = 1000;
_down.Stop();
_right.maxParticles = 1000;
_right.Stop();
_left.maxParticles = 1000;
_left.Stop();
}
void Update()
{
if (Input.GetKeyDown(KeyCode.RightArrow))
{
_left.Play();
_dirs.Add(Vector3.right);
}
if (Input.GetKeyUp(KeyCode.RightArrow))
{
_left.Stop();
_dirs.Remove(Vector3.right);
}
if (Input.GetKeyDown(KeyCode.LeftArrow))
{
_right.Play();
_dirs.Add(Vector3.left);
}
if (Input.GetKeyUp(KeyCode.LeftArrow))
{
_right.Stop();
_dirs.Remove(Vector3.left);
}
if (Input.GetKeyDown(KeyCode.UpArrow))
{
_down.Play();
_dirs.Add(Vector3.up);
}
if (Input.GetKeyUp(KeyCode.UpArrow))
{
_down.Stop();
_dirs.Remove(Vector3.up);
}
if (Input.GetKeyDown(KeyCode.DownArrow))
{
_up.Play();
_dirs.Add(Vector3.down);
}
if (Input.GetKeyUp(KeyCode.DownArrow))
{
_up.Stop();
_dirs.Remove(Vector3.down);
}
}
void FixedUpdate()
{
foreach (var dir in _dirs)
{
_rb.AddForce(dir * _force, ForceMode.Acceleration);
}
}
}