//public NullReferenceException PlayClip public TypedAudioClip BindClipToAudioSource(TypedAudioClip clip) { switch (clip.Type) { case ClipType.Music: if (musicSource == null) { musicSource = gameObject.AddComponent <AudioSource>(); } clip.Source = musicSource; break; case ClipType.Ambience: if (ambienceSource == null) { ambienceSource = gameObject.AddComponent <AudioSource>(); } clip.Source = ambienceSource; break; case ClipType.Effect: clip = SetUpAudioSource(clip); break; case ClipType.Undefined: clip = SetUpAudioSource(clip); break; default: Debug.Log("Unregistered AudioClip encountered"); break; } return(clip); }
/// <summary> /// Creates a TypedAudioClip and adds it to the typedAudioClips collection. /// Note: The method allows you to omit type and name, but you should always provide these parameters if you want to play the clip /// </summary> /// <param name="clip"></param> /// <param name="type"></param> /// <param name="name">Must be unique to guarantee playability</param> /// <returns></returns> public int AddAudioClip(AudioClip clip, ClipType type = ClipType.Undefined, string name = "GiveMeAName") { TypedAudioClip c = new TypedAudioClip(clip, type, name); typedAudioClips.Add(c); return(typedAudioClips.IndexOf(c)); }
TypedAudioClip SetUpAudioSource(TypedAudioClip clip) { if (clip.Source == null) { clip.Source = gameObject.AddComponent <AudioSource>(); } clip.Source.clip = clip.Clip; clip.Source.volume = clip.volume; clip.Source.mute = clip.mute; clip.Source.playOnAwake = clip.PlayOnAwake; clip.Source.loop = clip.Loop; return(clip); }