Version: 2023.2
public bool SetFloat (string name, float value);

参数

name The name of an exposed Audio Mixer group parameter. To expose a parameter, go to the Audio Mixer group's Inspector window, right click the parameter you want to expose, and choose Expose [parameter name] to script.
value Use to set the exposed Audio Mixer group parameter to a new value.

返回

bool 如果未找到暴露参数或快照处于编辑状态,则返回 false。

描述

Sets the value of the exposed parameter specified. When a parameter is exposed, it is not controlled by mixer snapshots. You can only change the parameter with this function.

Note: Don’t call AudioMixer.SetFloat in the following event functions as it can result in unexpected behavior: MonoBehaviour.Awake OnEnable RuntimeInitializeLoadType.AfterSceneLoad Instead, call AudioMixer.SetFloat in MonoBehaviour.Start or any event function Unity calls afterwards in the order of event function execution.

using System;
using UnityEngine;
using UnityEngine.Audio;

public class MixerVolumeController : MonoBehaviour { // The range of the volume slider on a mixer group const float minVolume = -80f; const float maxVolume = 20f;

public AudioMixer mixer;

[Range(minVolume, maxVolume)] public float volume;

float previousVolume;

void Update() { volume = Mathf.Clamp(volume, minVolume, maxVolume);

// Sets the exposed parameter "volume" in the audio mixer, // In this example the parameter is assumed to be the volume of a mixer group. // It could be any other exposable mixer parameter. if (!Mathf.Approximately(volume, previousVolume)) { mixer.SetFloat("volume", volume); }

previousVolume = volume; }

void OnGUI() { GUILayout.BeginHorizontal(); GUILayout.Label("Mixer volume"); var newVolume = GUILayout.HorizontalSlider(volume, minVolume, maxVolume, GUILayout.Width(300));

if (!Mathf.Approximately(newVolume, previousVolume)) { volume = newVolume; mixer.SetFloat("volume", volume); }

GUILayout.EndHorizontal(); } }