public void PlaySingle(AudioClip clip, Audio source, MixerGroups mix) { AudioSource temp = ambientSource; if (source == Audio.BACKGROUND) { temp = ambientSource; } else if (source == Audio.SOUND_EFFECT) { temp = efxSource; } temp.clip = clip; switch (mix) { case MixerGroups.AMBIENT_AUDIO: temp.outputAudioMixerGroup = ambientAudio; break; case MixerGroups.PLAYER_BULLETS: temp.outputAudioMixerGroup = playerBullets; break; case MixerGroups.ENEMY_BULLETS: temp.outputAudioMixerGroup = enemyBullets; break; } temp.pitch = Random.Range(lowPitchRange, highPitchRange); temp.Play(); }
/// <summary> /// グループごとにボリューム設定 /// </summary> /// <param name="group"></param> /// <param name="volume"></param> public void SetVolume(MixerGroups group, float volume) { var decibel = 20f * Mathf.Log(volume); if (float.IsNegativeInfinity(decibel)) { decibel = -96f; } audioMixer.SetFloat(group.ToString(), decibel); }
/// <summary> /// Returns the Mixer Group linked with the enum entry provided /// </summary> public AudioMixerGroup GetMixerGroup(MixerGroups mg) { return m_mixerGroups[(int)mg]; }
/// <summary> /// /// </summary> /// <param name="group"></param> /// <returns></returns> public float GetVolumeByLinear(MixerGroups group) { audioMixer.GetFloat(group.ToString(), out var decibel); return(Mathf.Pow(10f, decibel / 20f)); }