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; } }
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>(); } } } }