Une référence d'objet est requise pour accéder à un non-membre statique

Je vais avoir cette erreur d'arriver et je ne sais pas pourquoi... j'ai essayé de le chercher, les gens sont en train de créer un objet de la classe ou de créer les méthodes statiques... mais je ne suis pas sûr de savoir comment.

Voici mon code ci-dessous:

public class SoundManager : MonoBehaviour {

public List<AudioSource> audioSounds = new List<AudioSource>();
public double minTime = 0.5;

public static void playSound(AudioClip sourceSound, Vector3 objectPosition, int volume, float audioPitch, int dopplerLevel)
{
    bool playsound = false;
    foreach (AudioSource sound in audioSounds) //Loop through List with foreach
    {
        if (sourceSound.name != sound.name && sound.time <= minTime)
        {
            playsound = true;
        }
    }

    if(playsound) {
        AudioSource.PlayClipAtPoint(sourceSound, objectPosition);
    }
}
}
Quelle ligne avez-vous l'erreur?
La boucle foreach
playSound est une méthode statique dans votre classe, mais vous faites référence à des membres comme audioSounds ou minTime qui ne sont pas déclarées static donc ils nécessitent une SoundManager sm = new SoundManager(); de fonctionner comme sm.audioSounds
Vous avez besoin de faire audiosounds statique, ou playsound pas statique.
Ou la passer en paramètre lorsque vous appelez la méthode.

OriginalL'auteur James Eaton | 2014-05-15