2015-08-30 1 views
1

je suivais un tutoriel d'unité a commencé sur l'unité 4 mais je suis sur l'unité 5, et lorsque je tente d'utiliser le script vu (https://youtu.be/vwUahWrY9Jg?t=1337) et je tente de l'utiliser, il donne une erreur :Unité 5 c-suppression de particules # Script

Assets/Scripts/DestroyFinishedParticle.cs(18,17): error CS0246: The type or namespace name `Destroy' could not be found. Are you missing a using directive or an assembly reference?

c'est le code:

using UnityEngine; 
using System.Collections; 

public class DestroyFinishedParticle : MonoBehaviour { 

    private ParticleSystem thisParticleSystem; 

    // Use this for initialization 
    void Start() { 
     thisParticleSystem = GetComponent<ParticleSystem>(); 
    } 

    // Update is called once per frame 
    void Update() { 
     if (thisParticleSystem.isPlaying) 
      return; 

     Destroy (GameObject); 
    } 
} 

Il peut être parce que le code C# pour l'unité a changé 4 et 5? Que devrais-je changer? Le problème semble être dans la méthode Update.

+0

Je n'ai * jamais * utilisé Unity, alors je me contenterai de faire des commentaires ici. Selon http://docs.unity3d.com/ScriptReference/Object.Destroy.html 'Destroy()' est une méthode statique - essayez 'Object.Destroy (GameObject);' – jdphenix

+0

J'ai réglé cela et ne fonctionnait pas , puis réglez le 'détruire()' avec Ctrl Z et fonctionne simplement. Parfois, je déteste la programmation xD merci! –

Répondre

1

Il y a quelques problèmes avec ce code.

D'abord, vous n'avez pas parlé à ce qui est accordé un trop exactement? Je suppose qu'il est attaché au système de particules.

En second lieu, utiliser "gameobject", pas "gameobject", puisque gameobject est le nom de la classe. Troisièmement, je crois qu'il existe un moyen beaucoup plus efficace de détruire le gameObject sans vérifier chaque image si le système de particules a fini ou non, peut-être définir une petite minuterie? ou invoquer la fonction avec le temps?