using UnityEngine; using System.Collections; public class Thruster : MonoBehaviour { public float speed; public float thrustDuration; public bool shot = false; public bool attached = false; private ParticleSystem particles; [HideInInspector] public Rigidbody2D rigid; // Use this for initialization void Start () { rigid = GetComponent(); particles = GetComponentInChildren(); particles.enableEmission = false; } // Update is called once per frame void FixedUpdate () { if (Input.anyKeyDown && attached) { StartCoroutine(fireEngines()); } /* rigid.AddForceAtPosition(transform.right * speed, transform.position, ForceMode2D.Impulse); particles.enableEmission = true; shot = true; } else if (shot) { Destroy(gameObject); } else { particles.enableEmission = false; } */ } private IEnumerator fireEngines() { Debug.Log("firing Engines"); float startTime = Time.time; particles.enableEmission = true; while (Time.time - startTime < thrustDuration) { rigid.AddForceAtPosition(transform.right * speed, transform.position, ForceMode2D.Impulse); yield return new WaitForSeconds(0.01f); } Destroy(gameObject); yield return null; } }