public AudioClip GetClip(SFX clipName) { SFXScriptableObject sfxSO = soundEffects.Find(x => x.name == clipName).sfxSO; var sfxClipArraySize = sfxSO.audioClips.Length; if (sfxClipArraySize == 0) { Debug.LogError("Please add audio clip(s) to " + sfxSO.name + " scriptable object."); return(null); } return(sfxSO.audioClips[Random.Range(0, sfxClipArraySize)]); }
// Returns length of random clip just played private float PlayRandomClip(SFXScriptableObject sfxSO, Vector3 pos) { asc = GetController(); var audioClipArraySize = sfxSO.audioClips.Length; if (audioClipArraySize == 0) { Debug.LogError("Please set audio clip(s) on " + sfxSO.name + " scriptable object."); return(0); } AudioClip clip = sfxSO.audioClips[Random.Range(0, audioClipArraySize)]; if (asc != null) { asc.SetPosition(pos); asc.SetSourceProperties(clip, sfxSO.volume, sfxSO.pitch, sfxSO.loop); asc.Play(); } return(clip.length); }