- Home /
Playing multiple sounds from a C# array?
Hi all,
Working on music engine for a game and I cannot get this to work. I need to play several sounds from one c# script. This is what the load/play part of the code looks like right now:
public class music : MonoBehaviour {
string[] arrayGen0Files = // Array of Clips to load from the resources folder
{
"Gen0_Calm_AA", "Gen0_Calm_AB", "Gen0_Calm_AC", "Gen0_Calm_AD",
"Gen0_Calm_BA", "Gen0_Calm_BB", "Gen0_Calm_BC", "Gen0_Calm_BD",
"Gen0_Battle_AA", "Gen0_Battle_AB", "Gen0_Battle_AC", "Gen0_Battle_AD",
"Gen0_Battle_BA", "Gen0_Battle_BB", "Gen0_Battle_BC", "Gen0_Battle_BD",
};
AudioSource[] arrayGen0Sources; // Array of Sources
AudioClip[] arrayGen0Clips; // Array of Clips
void Start ()
{
for (int i=0; i < arrayGen0Files.Length; i++) // Load Clips
{
arrayGen0Sources[i] = (AudioSource)gameObject.AddComponent ("AudioSource");
arrayGen0Clips[i] = (AudioClip)Resources.Load (arrayGen0Files[i]);
arrayGen0Sources[i].clip = arrayGen0Clips[i];
arrayGen0Lengths[i] = arrayGen0Clips[i].length;
}
}
void Update () // Play clips depending on currentListProgression
{
arrayGen0Sources[arrayGen0Playlist[currentListProgression]].Play ();
}
}
It just ends up with me getting a "NullReferenceException" at the loading stage of the code. Is there a better way to handle a lot of files in one C# script?
Hello,
you just forgot to assign your arrays, before the "for" loop
arrayGen0Sources = new AudioSource[arrayGen0Files.Length];
arrayGen0Clips = new AudioClip[arrayGen0Files.Length];
cheers
Answer by fafase · Jul 02, 2014 at 04:53 PM
Your arrays have no location to store the items. You only have the reference to tha array, you need to create the array:
float length = arrayGen0Files.Length;
arrayGen0Sources = new AudioSource[length];
// Same for others
// Now you can loop
Also, I do not see the declaration of arrayGen0Lengths
Sorry, trimmed the code in a hurry so it would not be so much and forgot arrayGen0Lengths.
Your answer
Follow this Question
Related Questions
AudioClip array error 1 Answer
Multiple Cars not working 1 Answer
Distribute terrain in zones 3 Answers
C#: Array containing 6 Vector2 arrays / index 1 Answer
How to Save an multidimensional array trough editor script 1 Answer