Beispiel #1
0
    public void Explode()
    {
        StopTrail();

        if (explosionFXPrefab != null)
        {
            ParticleSystem explode = GameObject.Instantiate(explosionFXPrefab);
            explode.transform.position = transform.position;
            explode.transform.rotation = transform.rotation;

            // Gibt der Explosion die nötige Componente um sich selbst zu zerstören.
            LauncherRemoveFX remove = explode.GetComponent <LauncherRemoveFX>();
            if (remove == null)
            {
                remove = explode.gameObject.AddComponent <LauncherRemoveFX>();
            }

            remove.readyToDestroy = true;
        }
    }
Beispiel #2
0
    private void Start()
    {
        if (trailPrefab != null || particleTrailPrefab != null)    // Tue nichts, wenn keine Trail angegeben ist.
        {
            // Suche nach Referenzpunkten, um Trail zu spawnen. Nutze Objekt-Transformation, wenn keine Referenz vorhanden.
            if (trailPos == null)
            {
                trailPos = transform.Find("TrailFx");

                if (trailPos == null)
                {
                    trailPos = transform;
                }
            }

            if (trailPrefab != null)            // Initialisiere Trail
            {
                trail = Instantiate(trailPrefab, trailPos);
                trail.transform.localPosition    = Vector3.zero;
                trail.transform.localEulerAngles = Vector3.zero;
                trail.enabled = false;
            }

            if (particleTrailPrefab != null)     // Initialisiere ParticleSystem
            {
                particleTrail = Instantiate(particleTrailPrefab, trailPos);
                particleTrail.transform.localPosition    = Vector3.zero;
                particleTrail.transform.localEulerAngles = Vector3.zero;
                particleTrail.Stop();

                // Hänge effectCleaner an das gameObjekt, um Effekte auch wieder abstellen zu können.
                if (particleTrail.GetComponent <LauncherRemoveFX>() == null)
                {
                    effectCleaner = particleTrail.gameObject.AddComponent <LauncherRemoveFX>();
                }
            }
        }
    }