add volume mixer

This commit is contained in:
2026-05-06 18:44:52 -05:00
parent b414bd391c
commit aee3fe9ea7
7 changed files with 192 additions and 60 deletions
+144
View File
@@ -0,0 +1,144 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!243 &-5985036292871575848
AudioMixerGroupController:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Music
m_AudioMixer: {fileID: 24100000}
m_GroupID: 5bdfe230200494b4dba2d07588c7c60d
m_Children: []
m_Volume: 831694893cecc104e83cd13eec93d28c
m_Pitch: 5aeb6a175f195024a87861062e2ec1b0
m_Send: 00000000000000000000000000000000
m_Effects:
- {fileID: -5067953075322291121}
m_UserColorIndex: 0
m_Mute: 0
m_Solo: 0
m_BypassEffects: 0
--- !u!244 &-5067953075322291121
AudioMixerEffectController:
m_ObjectHideFlags: 3
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_EffectID: 87ce651d7c89cfa44afcecbb0fff4abd
m_EffectName: Attenuation
m_MixLevel: df4b34f13069a454cb0de1361d5c4099
m_Parameters: []
m_SendTarget: {fileID: 0}
m_EnableWetMix: 0
m_Bypass: 0
--- !u!241 &24100000
AudioMixerController:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: AudioMixer
m_OutputGroup: {fileID: 0}
m_MasterGroup: {fileID: 24300002}
m_Snapshots:
- {fileID: 24500006}
m_StartSnapshot: {fileID: 24500006}
m_SuspendThreshold: -80
m_EnableSuspend: 1
m_UpdateMode: 0
m_ExposedParameters:
- guid: 8e54073feec66d24c8b5b5321b86da6f
name: MasterVolume
- guid: 831694893cecc104e83cd13eec93d28c
name: MusicVolume
- guid: 97cc39ce50c2b85439b8361ceae3f4c6
name: SFXVolume
m_AudioMixerGroupViews:
- guids:
- 1647cf21931ffb4409abd5f86b5ba22b
- 5bdfe230200494b4dba2d07588c7c60d
- 306f67f3e059d2c4aaaef306930b737e
name: View
m_CurrentViewIndex: 0
m_TargetSnapshot: {fileID: 24500006}
--- !u!243 &24300002
AudioMixerGroupController:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Master
m_AudioMixer: {fileID: 24100000}
m_GroupID: 1647cf21931ffb4409abd5f86b5ba22b
m_Children:
- {fileID: -5985036292871575848}
- {fileID: 3079392121493439853}
m_Volume: 8e54073feec66d24c8b5b5321b86da6f
m_Pitch: f023bc3b372a9df469e34b83fc9efc66
m_Send: 00000000000000000000000000000000
m_Effects:
- {fileID: 24400004}
m_UserColorIndex: 0
m_Mute: 0
m_Solo: 0
m_BypassEffects: 0
--- !u!244 &24400004
AudioMixerEffectController:
m_ObjectHideFlags: 3
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_EffectID: bdd917cc2a7b59c45a66df37be3e3489
m_EffectName: Attenuation
m_MixLevel: c9d36b6a18286a8449cc204da4cc3140
m_Parameters: []
m_SendTarget: {fileID: 0}
m_EnableWetMix: 0
m_Bypass: 0
--- !u!245 &24500006
AudioMixerSnapshotController:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Snapshot
m_AudioMixer: {fileID: 24100000}
m_SnapshotID: 8474d9129ecb5954ea867453e7561687
m_FloatValues: {}
m_TransitionOverrides: {}
--- !u!243 &3079392121493439853
AudioMixerGroupController:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: SFX
m_AudioMixer: {fileID: 24100000}
m_GroupID: 306f67f3e059d2c4aaaef306930b737e
m_Children: []
m_Volume: 97cc39ce50c2b85439b8361ceae3f4c6
m_Pitch: 9119b1dfcb88e4e4c917090c57fa1680
m_Send: 00000000000000000000000000000000
m_Effects:
- {fileID: 5127884578886668124}
m_UserColorIndex: 0
m_Mute: 0
m_Solo: 0
m_BypassEffects: 0
--- !u!244 &5127884578886668124
AudioMixerEffectController:
m_ObjectHideFlags: 3
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_EffectID: 0f75e42fe6e091c4ca36a6aa676fff0f
m_EffectName: Attenuation
m_MixLevel: 45c4e84286ed5a345b779472c0df9874
m_Parameters: []
m_SendTarget: {fileID: 0}
m_EnableWetMix: 0
m_Bypass: 0
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 3490106d3e6edc143b9179d3107780dd
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 24100000
userData:
assetBundleName:
assetBundleVariant:
+1
View File
@@ -573,3 +573,4 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: ab14394efecbd6540af369ced75e81d0, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::SoundSettingManager
audioMixer: {fileID: 24100000, guid: 3490106d3e6edc143b9179d3107780dd, type: 2}
+4 -55
View File
@@ -3979,17 +3979,6 @@ Transform:
- {fileID: 1210745724}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1898647305 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 5836996391021161412, guid: 6d1ef2b53d3ef0446852da522af66b73, type: 3}
m_PrefabInstance: {fileID: 6325623361260993107}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3ba23d5f6c337c34caaac9a4d8aab191, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::MenuScreen
--- !u!1 &1966866168
GameObject:
m_ObjectHideFlags: 0
@@ -4329,6 +4318,10 @@ PrefabInstance:
propertyPath: dialogueText
value:
objectReference: {fileID: 2063514703}
- target: {fileID: 1410439939888368689, guid: 9f59bbee72927d649b032622c1c0f2f5, type: 3}
propertyPath: audioMixer
value:
objectReference: {fileID: 24100000, guid: 3490106d3e6edc143b9179d3107780dd, type: 2}
- target: {fileID: 5519027142145697695, guid: 9f59bbee72927d649b032622c1c0f2f5, type: 3}
propertyPath: m_LocalPosition.x
value: 0
@@ -4386,50 +4379,10 @@ PrefabInstance:
serializedVersion: 3
m_TransformParent: {fileID: 1704696510}
m_Modifications:
- target: {fileID: 818899427131401759, guid: 6d1ef2b53d3ef0446852da522af66b73, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1376587328550839904, guid: 6d1ef2b53d3ef0446852da522af66b73, type: 3}
propertyPath: m_Name
value: UI
objectReference: {fileID: 0}
- target: {fileID: 2975696880262954876, guid: 6d1ef2b53d3ef0446852da522af66b73, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4155624016714589187, guid: 6d1ef2b53d3ef0446852da522af66b73, type: 3}
propertyPath: m_AnchoredPosition.y
value: -259.2
objectReference: {fileID: 0}
- target: {fileID: 4264548731807291060, guid: 6d1ef2b53d3ef0446852da522af66b73, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4265459964761688869, guid: 6d1ef2b53d3ef0446852da522af66b73, type: 3}
propertyPath: m_AnchoredPosition.y
value: 27
objectReference: {fileID: 0}
- target: {fileID: 4906462856215206936, guid: 6d1ef2b53d3ef0446852da522af66b73, type: 3}
propertyPath: m_AnchoredPosition.y
value: -195
objectReference: {fileID: 0}
- target: {fileID: 5101319162034548862, guid: 6d1ef2b53d3ef0446852da522af66b73, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5514935285560916770, guid: 6d1ef2b53d3ef0446852da522af66b73, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6476180199089286077, guid: 6d1ef2b53d3ef0446852da522af66b73, type: 3}
propertyPath: screens.Array.size
value: 4
objectReference: {fileID: 0}
- target: {fileID: 6476180199089286077, guid: 6d1ef2b53d3ef0446852da522af66b73, type: 3}
propertyPath: 'screens.Array.data[3]'
value:
objectReference: {fileID: 1898647305}
- target: {fileID: 6792308726050395253, guid: 6d1ef2b53d3ef0446852da522af66b73, type: 3}
propertyPath: m_LocalPosition.x
value: 0
@@ -4470,10 +4423,6 @@ PrefabInstance:
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7535213278904715570, guid: 6d1ef2b53d3ef0446852da522af66b73, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
@@ -1,9 +1,12 @@
using UnityEngine;
using UnityEngine.Audio;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
public class SoundSettingManager : MonoBehaviour
{
public AudioMixer audioMixer;
float masterVolume;
float musicVolume;
float sfxVolume;
@@ -28,21 +31,40 @@ public void ReloadReferences()
MasterSlider.onValueChanged.AddListener(OnMasterValueChanged);
SfxSlider.onValueChanged.AddListener(OnSfxValueChanged);
MusicSlider.onValueChanged.AddListener(OnMusicValueChanged);
MasterSlider.value = masterVolume;
SfxSlider.value = sfxVolume;
MusicSlider.value = musicVolume;
}
public void OnMasterValueChanged(float newValue)
{
masterVolume = newValue;
SetVolumeFloat(newValue, "MasterVolume");
}
public void OnSfxValueChanged(float newValue)
{
sfxVolume = newValue;
SetVolumeFloat(newValue, "SFXVolume");
}
public void OnMusicValueChanged(float newValue)
{
musicVolume = newValue;
SetVolumeFloat(newValue, "MusicVolume");
}
private void SetVolumeFloat(float sliderVal, string mixerGroup)
{
// Convert linear 0-1 to dB (-80 to 0 range)
float dbValue = Mathf.Log10(sliderVal) * 20;
if (sliderVal == 0)
{
dbValue = -80;
}
audioMixer.SetFloat(mixerGroup, dbValue);
}
#region Sound Settings Data Save/Load
@@ -58,6 +80,14 @@ public void LoadSoundSettingsData(SoundSettingSaveData data)
musicVolume = data.musicVolume;
sfxVolume = data.sfxVolume;
masterVolume = data.masterVolume;
MasterSlider.value = masterVolume;
SfxSlider.value = sfxVolume;
MusicSlider.value = musicVolume;
SetVolumeFloat(masterVolume, "MasterVolume");
SetVolumeFloat(musicVolume, "MusicVolume");
SetVolumeFloat(sfxVolume, "SFXVolume");
}
#endregion
}
+1 -1
View File
@@ -1479,9 +1479,9 @@ Transform:
m_LocalScale: {x: 1.7391305, y: 1.7391305, z: 1.7391305}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 5210793787358148244}
- {fileID: 3172362146895278104}
- {fileID: 8838351739978356113}
- {fileID: 5210793787358148244}
- {fileID: 4317687165807747350}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}