public AudioMixerGroup getMixerType(Audio_Type type) { AudioData datas; if (AudioDatas.TryGetValue(type, out datas)) { return(datas.defaultMixerGroup); } return(null); }
/* * Hashtable parameters : * loop : boolean * delayed : boolean * delayedtime : float * priority : int * volume : float * pitch : float * panStereo : float * spatialBlend : float * reverbZoneMix : float * dopplerLevel : float * spread : float * rolloffMode : AudioRolloffMode * minDistance : float * maxDistance : float * position : Vector3 * autoRelease : boolean * starttime : float */ public int playAudio(Audio_Type type, Hashtable param = null) { AudioSource source; int key; if (GetSource(type, out source, out key)) { if (param == null) { param = new Hashtable( ); } bool delayed = param.ContainsKey("delayed") ? ( bool )param["delayed"] : false; source.loop = param.ContainsKey("loop") ? ( bool )param["loop"] : false; source.priority = param.ContainsKey("priority") ? ( int )param["priority"] : 128; source.volume = param.ContainsKey("volume") ? ( float )param["volume"] : 1.0f; source.pitch = param.ContainsKey("pitch") ? ( float )param["pitch"] : 1.0f; source.panStereo = param.ContainsKey("panStereo") ? ( float )param["panStereo"] : .0f; source.spatialBlend = param.ContainsKey("spatialBlend") ? ( float )param["spatialBlend"] : .0f; source.reverbZoneMix = param.ContainsKey("reverbZoneMix") ? ( float )param["reverbZoneMix"] : .45f; source.dopplerLevel = param.ContainsKey("dopplerLevel") ? ( float )param["dopplerLevel"] : 1.0f; source.spread = param.ContainsKey("spread") ? ( float )param["spread"] : .0f; source.rolloffMode = param.ContainsKey("rolloffMode") ? ( AudioRolloffMode )param["rolloffMode"] : AudioRolloffMode.Logarithmic; source.minDistance = param.ContainsKey("minDistance") ? ( float )param["minDistance"] : 1.0f; source.maxDistance = param.ContainsKey("maxDistance") ? ( float )param["maxDistance"] : 500.0f; source.transform.position = param.ContainsKey("position") ? ( Vector3 )param["position"] : Vector3.zero; source.time = param.ContainsKey("starttime") ? (float)param["starttime"] : .0f; float time = param.ContainsKey("delayedtime") ? ( float )param["delayedtime"] : .0f; if (delayed) { source.PlayDelayed(time); } else { source.Play( ); } if (!source.loop && param.ContainsKey("autoRelease") ? ( bool )param["autoRelease"] : true) { StartCoroutine(autoRelease(key, time)); } } else { Destroy(source); } return(key); }
public void registerAudioData(Audio_Type type, AudioData data) { //if (AudioDatas == null) // AudioDatas = new Dictionary<Audio_Type, AudioData>(); if (!AudioDatas.ContainsKey(type)) { AudioDatas.Add(type, data); } if (type == Audio_Type.MenuMusic) { GameManager.Instance.PlayMenuMusic(); } }
private bool GetSource(Audio_Type type, out AudioSource source, out int key) { AudioData data; if (AudioDatas.TryGetValue(type, out data)) { AudioPSource psource; if (AudioPool.GetAvailable(true, out psource)) { key = 0; while (AudioPlaying.ContainsKey(key)) { key++; } AudioPlaying.Add(key, psource); source = psource.audio_source; source.clip = data.getClip( ); if (data.defaultMixerGroup != null) { source.outputAudioMixerGroup = data.defaultMixerGroup; } else { source.outputAudioMixerGroup = masterMixerGroup; } return(true); } else { Destroy(psource); } } else { Destroy(data); } source = new AudioSource( ); key = -1; return(false); }
public void registerAudioData(Audio_Type type, AudioData data) { AudioDatas.Add(type, data); }
public void playAudio(Audio_Type type) { AudioSource source; AudioDatas[type].getClip(); int key; }