Audio stuff (WIP) - working with mixers!
This commit is contained in:
parent
177889a1e0
commit
8e47930a3c
Binary file not shown.
|
@ -0,0 +1,22 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: f38804d07e1b7804e8112dd2cfdee185
|
||||||
|
AudioImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 6
|
||||||
|
defaultSettings:
|
||||||
|
loadType: 0
|
||||||
|
sampleRateSetting: 0
|
||||||
|
sampleRateOverride: 44100
|
||||||
|
compressionFormat: 1
|
||||||
|
quality: 1
|
||||||
|
conversionMode: 0
|
||||||
|
platformSettingOverrides: {}
|
||||||
|
forceToMono: 0
|
||||||
|
normalize: 1
|
||||||
|
preloadAudioData: 1
|
||||||
|
loadInBackground: 0
|
||||||
|
ambisonic: 0
|
||||||
|
3D: 1
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: b136faaf72d7dda4d85f9e47e4f5785f
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,91 @@
|
||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!241 &24100000
|
||||||
|
AudioMixerController:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: BGMMixer
|
||||||
|
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: []
|
||||||
|
m_AudioMixerGroupViews:
|
||||||
|
- guids:
|
||||||
|
- 566c5e0ddf85965418c4e928780bd1c2
|
||||||
|
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: 566c5e0ddf85965418c4e928780bd1c2
|
||||||
|
m_Children: []
|
||||||
|
m_Volume: e237ccf0dc4562d4d917288c333e4914
|
||||||
|
m_Pitch: c51c08a02aeb2cb4ca6cba414805904c
|
||||||
|
m_Send: 00000000000000000000000000000000
|
||||||
|
m_Effects:
|
||||||
|
- {fileID: 2747661610774394998}
|
||||||
|
- {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: d4017f5208cf4654998c6405c2123e09
|
||||||
|
m_EffectName: Attenuation
|
||||||
|
m_MixLevel: 8927544744190b64eac9fd5220e88097
|
||||||
|
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: 4117f6b7fd784794ba09e4c024f88699
|
||||||
|
m_FloatValues: {}
|
||||||
|
m_TransitionOverrides: {}
|
||||||
|
--- !u!244 &2747661610774394998
|
||||||
|
AudioMixerEffectController:
|
||||||
|
m_ObjectHideFlags: 3
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name:
|
||||||
|
m_EffectID: e469285c525017b489ba03af652b3057
|
||||||
|
m_EffectName: Pitch Shifter
|
||||||
|
m_MixLevel: 31e0ac09030b46f4bab48ed4fa32c94e
|
||||||
|
m_Parameters:
|
||||||
|
- m_ParameterName: Pitch
|
||||||
|
m_GUID: 488bd2ac94838f14cadbca3c4455b0de
|
||||||
|
- m_ParameterName: FFT size
|
||||||
|
m_GUID: cdf507051bdff514288a92de380a7b9d
|
||||||
|
- m_ParameterName: Overlap
|
||||||
|
m_GUID: b6daacd24e06c24488dd0c8d9b8bfd5f
|
||||||
|
- m_ParameterName: Max channels
|
||||||
|
m_GUID: 0cefbc19749a7554497b8722a7fbe766
|
||||||
|
m_SendTarget: {fileID: 0}
|
||||||
|
m_EnableWetMix: 0
|
||||||
|
m_Bypass: 0
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: d0e13768ad98ea0468763d11da851a31
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
Binary file not shown.
|
@ -0,0 +1,22 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: f43397d0b3eb08542bc9c35458308eba
|
||||||
|
AudioImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 6
|
||||||
|
defaultSettings:
|
||||||
|
loadType: 0
|
||||||
|
sampleRateSetting: 0
|
||||||
|
sampleRateOverride: 44100
|
||||||
|
compressionFormat: 1
|
||||||
|
quality: 1
|
||||||
|
conversionMode: 0
|
||||||
|
platformSettingOverrides: {}
|
||||||
|
forceToMono: 0
|
||||||
|
normalize: 1
|
||||||
|
preloadAudioData: 1
|
||||||
|
loadInBackground: 0
|
||||||
|
ambisonic: 0
|
||||||
|
3D: 1
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1 @@
|
||||||
|
I made these with bxfr - Texel
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 3ad24be65e3114542a1dcc3b8075919c
|
||||||
|
TextScriptImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
Binary file not shown.
|
@ -0,0 +1,22 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 2cb067bd197684045a82612fcdab33a5
|
||||||
|
AudioImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 6
|
||||||
|
defaultSettings:
|
||||||
|
loadType: 0
|
||||||
|
sampleRateSetting: 0
|
||||||
|
sampleRateOverride: 44100
|
||||||
|
compressionFormat: 1
|
||||||
|
quality: 1
|
||||||
|
conversionMode: 0
|
||||||
|
platformSettingOverrides: {}
|
||||||
|
forceToMono: 0
|
||||||
|
normalize: 1
|
||||||
|
preloadAudioData: 1
|
||||||
|
loadInBackground: 0
|
||||||
|
ambisonic: 0
|
||||||
|
3D: 1
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,63 @@
|
||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
public static class AudioHelper {
|
||||||
|
static Dictionary<int, AudioClip> ClipByID;
|
||||||
|
static Dictionary<AudioClip, int> IDByClip;
|
||||||
|
|
||||||
|
public enum AudioCategory : byte {
|
||||||
|
Music = 1,
|
||||||
|
Fx = 2,
|
||||||
|
Voice = 3
|
||||||
|
}
|
||||||
|
|
||||||
|
public static float VolumeLevel(AudioCategory category) {
|
||||||
|
return PlayerPrefs.GetFloat(category.ToString(), 0.375f); // Did you know default volume of 1 is a bad idea
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void SetVolume(AudioCategory category, float level) {
|
||||||
|
PlayerPrefs.SetFloat(category.ToString(), level);
|
||||||
|
PlayerPrefs.Save();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int ByClip(AudioClip clip) {
|
||||||
|
if (IDByClip == null) Init();
|
||||||
|
if (IDByClip.TryGetValue(clip, out int idIfPresent)) {
|
||||||
|
return idIfPresent;
|
||||||
|
}
|
||||||
|
Debug.LogWarningFormat("{0} is not resources loaded clip!!", clip.name);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static AudioClip ByID(int id) {
|
||||||
|
if (ClipByID == null) Init();
|
||||||
|
try {
|
||||||
|
return ClipByID[id];
|
||||||
|
} catch {
|
||||||
|
throw new System.Exception(string.Format("Failure to find SFX with ID {0}", id));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// Build the audio lookup
|
||||||
|
static void Init() {
|
||||||
|
ClipByID = new Dictionary<int, AudioClip>();
|
||||||
|
IDByClip = new Dictionary<AudioClip,int>();
|
||||||
|
|
||||||
|
var allAudio = Resources.LoadAll<AudioClip>("");
|
||||||
|
|
||||||
|
for (int i = 0; i < allAudio.Length; ++i) {
|
||||||
|
var clip = allAudio[i];
|
||||||
|
ClipByID.Add(i, clip);
|
||||||
|
IDByClip.Add(clip, i);
|
||||||
|
}
|
||||||
|
|
||||||
|
var oString = "Loaded Sounds: ";
|
||||||
|
foreach (var key in ClipByID) {
|
||||||
|
oString += key;
|
||||||
|
}
|
||||||
|
|
||||||
|
Debug.Log(oString);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 1affa7ecbd65bf04cb3ee7fd44d9f370
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,43 @@
|
||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
using EntityNetwork;
|
||||||
|
|
||||||
|
public class AudioProvider : EntityBase, IAutoRegister
|
||||||
|
{
|
||||||
|
public static AudioProvider Instance;
|
||||||
|
public override void Awake() {
|
||||||
|
base.Awake();
|
||||||
|
Instance = this;
|
||||||
|
|
||||||
|
bgmSrc = GetComponent<AudioSource>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public float musicSpeed = 1f;
|
||||||
|
AudioSource bgmSrc;
|
||||||
|
|
||||||
|
public void Update() {
|
||||||
|
// TODO - This is WIP help
|
||||||
|
//bgmSrc.outputAudioMixerGroup.
|
||||||
|
}
|
||||||
|
|
||||||
|
int lastAudioFrame = 0;
|
||||||
|
public static void PlaySFX(AudioClip sfx, AudioHelper.AudioCategory category = AudioHelper.AudioCategory.Fx, float volume = 1.0f, bool sendRemote = true) {
|
||||||
|
if (sfx == null) return;
|
||||||
|
if (sendRemote)
|
||||||
|
Instance.RaiseEvent('s', true, AudioHelper.ByClip(sfx), (byte)category, volume);
|
||||||
|
else
|
||||||
|
Instance.InternallyPlaySFXEvent(AudioHelper.ByClip(sfx), (byte)category, volume);
|
||||||
|
}
|
||||||
|
|
||||||
|
[NetEvent('s')]
|
||||||
|
public void InternallyPlaySFXEvent(int sfxID, byte category, float volume) {
|
||||||
|
// Don't allow multiple audio sources to trigger at once
|
||||||
|
if (Time.frameCount == lastAudioFrame) return;
|
||||||
|
lastAudioFrame = Time.frameCount;
|
||||||
|
|
||||||
|
var clip = AudioHelper.ByID(sfxID);
|
||||||
|
AudioSource.PlayClipAtPoint(clip, Camera.main.transform.position, AudioHelper.VolumeLevel((AudioHelper.AudioCategory)category) * volume);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 8ff52355fe571224f9827356ec82bb42
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -838,6 +838,8 @@ GameObject:
|
||||||
- component: {fileID: 1199366272}
|
- component: {fileID: 1199366272}
|
||||||
- component: {fileID: 1199366271}
|
- component: {fileID: 1199366271}
|
||||||
- component: {fileID: 1199366270}
|
- component: {fileID: 1199366270}
|
||||||
|
- component: {fileID: 1199366274}
|
||||||
|
- component: {fileID: 1199366273}
|
||||||
m_Layer: 0
|
m_Layer: 0
|
||||||
m_Name: Main Camera
|
m_Name: Main Camera
|
||||||
m_TagString: MainCamera
|
m_TagString: MainCamera
|
||||||
|
@ -910,6 +912,118 @@ Transform:
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
m_RootOrder: 0
|
m_RootOrder: 0
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!82 &1199366273
|
||||||
|
AudioSource:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1199366269}
|
||||||
|
m_Enabled: 1
|
||||||
|
serializedVersion: 4
|
||||||
|
OutputAudioMixerGroup: {fileID: 24300002, guid: d0e13768ad98ea0468763d11da851a31,
|
||||||
|
type: 2}
|
||||||
|
m_audioClip: {fileID: 8300000, guid: f38804d07e1b7804e8112dd2cfdee185, type: 3}
|
||||||
|
m_PlayOnAwake: 1
|
||||||
|
m_Volume: 1
|
||||||
|
m_Pitch: 1
|
||||||
|
Loop: 0
|
||||||
|
Mute: 0
|
||||||
|
Spatialize: 0
|
||||||
|
SpatializePostEffects: 0
|
||||||
|
Priority: 128
|
||||||
|
DopplerLevel: 1
|
||||||
|
MinDistance: 1
|
||||||
|
MaxDistance: 500
|
||||||
|
Pan2D: 0
|
||||||
|
rolloffMode: 0
|
||||||
|
BypassEffects: 0
|
||||||
|
BypassListenerEffects: 0
|
||||||
|
BypassReverbZones: 0
|
||||||
|
rolloffCustomCurve:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Curve:
|
||||||
|
- serializedVersion: 3
|
||||||
|
time: 0
|
||||||
|
value: 1
|
||||||
|
inSlope: 0
|
||||||
|
outSlope: 0
|
||||||
|
tangentMode: 0
|
||||||
|
weightedMode: 0
|
||||||
|
inWeight: 0.33333334
|
||||||
|
outWeight: 0.33333334
|
||||||
|
- serializedVersion: 3
|
||||||
|
time: 1
|
||||||
|
value: 0
|
||||||
|
inSlope: 0
|
||||||
|
outSlope: 0
|
||||||
|
tangentMode: 0
|
||||||
|
weightedMode: 0
|
||||||
|
inWeight: 0.33333334
|
||||||
|
outWeight: 0.33333334
|
||||||
|
m_PreInfinity: 2
|
||||||
|
m_PostInfinity: 2
|
||||||
|
m_RotationOrder: 4
|
||||||
|
panLevelCustomCurve:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Curve:
|
||||||
|
- serializedVersion: 3
|
||||||
|
time: 0
|
||||||
|
value: 0
|
||||||
|
inSlope: 0
|
||||||
|
outSlope: 0
|
||||||
|
tangentMode: 0
|
||||||
|
weightedMode: 0
|
||||||
|
inWeight: 0.33333334
|
||||||
|
outWeight: 0.33333334
|
||||||
|
m_PreInfinity: 2
|
||||||
|
m_PostInfinity: 2
|
||||||
|
m_RotationOrder: 4
|
||||||
|
spreadCustomCurve:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Curve:
|
||||||
|
- serializedVersion: 3
|
||||||
|
time: 0
|
||||||
|
value: 0
|
||||||
|
inSlope: 0
|
||||||
|
outSlope: 0
|
||||||
|
tangentMode: 0
|
||||||
|
weightedMode: 0
|
||||||
|
inWeight: 0.33333334
|
||||||
|
outWeight: 0.33333334
|
||||||
|
m_PreInfinity: 2
|
||||||
|
m_PostInfinity: 2
|
||||||
|
m_RotationOrder: 4
|
||||||
|
reverbZoneMixCustomCurve:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Curve:
|
||||||
|
- serializedVersion: 3
|
||||||
|
time: 0
|
||||||
|
value: 1
|
||||||
|
inSlope: 0
|
||||||
|
outSlope: 0
|
||||||
|
tangentMode: 0
|
||||||
|
weightedMode: 0
|
||||||
|
inWeight: 0.33333334
|
||||||
|
outWeight: 0.33333334
|
||||||
|
m_PreInfinity: 2
|
||||||
|
m_PostInfinity: 2
|
||||||
|
m_RotationOrder: 4
|
||||||
|
--- !u!114 &1199366274
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1199366269}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 8ff52355fe571224f9827356ec82bb42, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
EntityID: 900
|
||||||
|
authorityID: -1
|
||||||
|
musicSpeed: 1
|
||||||
--- !u!1 &1280147033
|
--- !u!1 &1280147033
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
|
Loading…
Reference in New Issue