diff --git a/Binaries/Android/arm64/libaudioplugin_phonon.so b/Binaries/Android/arm64/libaudioplugin_phonon.so index e1b58a4..18c4dae 100755 --- a/Binaries/Android/arm64/libaudioplugin_phonon.so +++ b/Binaries/Android/arm64/libaudioplugin_phonon.so @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2cbeea2f9e8a9574b82e8eddfd9ef01d4f65d28326c0136c7cb3985109110cb2 -size 2988128 +oid sha256:4ea674f891c4ef49c28cc41f768b0081509653d866396b7fde856df40f2a1c24 +size 2998624 diff --git a/Binaries/Android/arm64/libphonon.so b/Binaries/Android/arm64/libphonon.so index 3d6e3c1..7946d7d 100755 --- a/Binaries/Android/arm64/libphonon.so +++ b/Binaries/Android/arm64/libphonon.so @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1beac2ebe1377ec424dc8f6315240426edd77a11aa95674296f3e83f43703d3a -size 23131504 +oid sha256:4cd190359644655ac81b5b72a0a69dbbeae5af32572ba9d42e8e6687e8d772a8 +size 22680408 diff --git a/Binaries/Android/armv7/libaudioplugin_phonon.so b/Binaries/Android/armv7/libaudioplugin_phonon.so index 0b92954..ecf979c 100755 --- a/Binaries/Android/armv7/libaudioplugin_phonon.so +++ b/Binaries/Android/armv7/libaudioplugin_phonon.so @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8adaa665b95078b5d372f4eeb049a3c17fc346d66b5316b2b457da4b74be5833 -size 1987428 +oid sha256:e47eb12902e33cb8677b33082000a15a2b137a0d4f658af4fa5ed671f861aa8d +size 1996504 diff --git a/Binaries/Android/armv7/libphonon.so b/Binaries/Android/armv7/libphonon.so index b39eb63..aab5fed 100755 --- a/Binaries/Android/armv7/libphonon.so +++ b/Binaries/Android/armv7/libphonon.so @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7c65e4adc09f2a1224d062bd1835dc8e435f0a9867aa46d844c9c36c251b18c0 -size 19627132 +oid sha256:7900e258070db5d0c2311984b8e7f597e5e0707457481f9d1e259db5cb6a71a9 +size 19292724 diff --git a/Binaries/Android/x86/libaudioplugin_phonon.so b/Binaries/Android/x86/libaudioplugin_phonon.so index 03ae62c..4598863 100755 --- a/Binaries/Android/x86/libaudioplugin_phonon.so +++ b/Binaries/Android/x86/libaudioplugin_phonon.so @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6572772b2aec9d9969c81339f71217139b060398de2569589a397ea0e4969c48 -size 2495272 +oid sha256:584c4b7bbda8b28b0ddeef7b9818697dbb3e1000f82a08e7291d1525e090f305 +size 2505900 diff --git a/Binaries/Android/x86/libphonon.so b/Binaries/Android/x86/libphonon.so index 9c314eb..d7c958c 100755 --- a/Binaries/Android/x86/libphonon.so +++ b/Binaries/Android/x86/libphonon.so @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3c54d600bfc4215fb73d091dba03ec753ba928cc10ef2c6784bae4104849f424 -size 19807996 +oid sha256:c00d835871f4ff42793f640ac71c558424e2cd3030cb6711b53a900d9209def6 +size 19425724 diff --git a/Binaries/Linux/x86.meta b/Binaries/Linux/x86.meta deleted file mode 100755 index e55ae78..0000000 --- a/Binaries/Linux/x86.meta +++ /dev/null @@ -1,9 +0,0 @@ -fileFormatVersion: 2 -guid: 0b0df2bea2345aa4f9e86bcacbc9608c -folderAsset: yes -timeCreated: 1500590827 -licenseType: Pro -DefaultImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Binaries/Linux/x86/libaudioplugin_phonon.so b/Binaries/Linux/x86/libaudioplugin_phonon.so deleted file mode 100755 index 5b2c280..0000000 --- a/Binaries/Linux/x86/libaudioplugin_phonon.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d44f1b1a71e4572158c720bfe8343af60b6f5579e1bbad5373697564785fcbc6 -size 74648 diff --git a/Binaries/Linux/x86/libaudioplugin_phonon.so.meta b/Binaries/Linux/x86/libaudioplugin_phonon.so.meta deleted file mode 100755 index 1aa9b7d..0000000 --- a/Binaries/Linux/x86/libaudioplugin_phonon.so.meta +++ /dev/null @@ -1,121 +0,0 @@ -fileFormatVersion: 2 -guid: 2bcf76b2e4398cb49b45812674a7ec17 -timeCreated: 1500675747 -licenseType: Free -PluginImporter: - serializedVersion: 2 - iconMap: {} - executionOrder: {} - isPreloaded: 1 - isOverridable: 0 - platformData: - data: - first: - '': Any - second: - enabled: 0 - settings: - Exclude Editor: 0 - Exclude Linux: 0 - Exclude Linux64: 1 - Exclude LinuxUniversal: 0 - Exclude OSXIntel: 1 - Exclude OSXIntel64: 1 - Exclude OSXUniversal: 1 - Exclude Win: 0 - Exclude Win64: 0 - data: - first: - '': Editor - second: - enabled: 0 - settings: - CPU: x86 - OS: Linux - data: - first: - Any: - second: - enabled: 0 - settings: {} - data: - first: - Editor: Editor - second: - enabled: 1 - settings: - CPU: x86 - DefaultValueInitialized: true - data: - first: - Facebook: Win - second: - enabled: 1 - settings: - CPU: AnyCPU - data: - first: - Facebook: Win64 - second: - enabled: 0 - settings: - CPU: None - data: - first: - Standalone: Linux - second: - enabled: 1 - settings: - CPU: x86 - data: - first: - Standalone: Linux64 - second: - enabled: 0 - settings: - CPU: None - data: - first: - Standalone: LinuxUniversal - second: - enabled: 1 - settings: - CPU: x86 - data: - first: - Standalone: OSXIntel - second: - enabled: 0 - settings: - CPU: None - data: - first: - Standalone: OSXIntel64 - second: - enabled: 0 - settings: - CPU: None - data: - first: - Standalone: OSXUniversal - second: - enabled: 0 - settings: - CPU: None - data: - first: - Standalone: Win - second: - enabled: 1 - settings: - CPU: AnyCPU - data: - first: - Standalone: Win64 - second: - enabled: 1 - settings: - CPU: None - userData: - assetBundleName: - assetBundleVariant: diff --git a/Binaries/Linux/x86/libphonon.so b/Binaries/Linux/x86/libphonon.so deleted file mode 100755 index ac1d5c2..0000000 --- a/Binaries/Linux/x86/libphonon.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ea8609ab190d46cbe206672062005625fa3f67ff56b5372ba29c17e387f98fb5 -size 17604252 diff --git a/Binaries/Linux/x86/libphonon.so.meta b/Binaries/Linux/x86/libphonon.so.meta deleted file mode 100755 index cbddf94..0000000 --- a/Binaries/Linux/x86/libphonon.so.meta +++ /dev/null @@ -1,121 +0,0 @@ -fileFormatVersion: 2 -guid: b73d370ef894b8d409fc51247d5b13cf -timeCreated: 1500675748 -licenseType: Free -PluginImporter: - serializedVersion: 2 - iconMap: {} - executionOrder: {} - isPreloaded: 0 - isOverridable: 0 - platformData: - data: - first: - '': Any - second: - enabled: 0 - settings: - Exclude Editor: 0 - Exclude Linux: 0 - Exclude Linux64: 1 - Exclude LinuxUniversal: 0 - Exclude OSXIntel: 1 - Exclude OSXIntel64: 1 - Exclude OSXUniversal: 1 - Exclude Win: 0 - Exclude Win64: 0 - data: - first: - '': Editor - second: - enabled: 0 - settings: - CPU: x86 - OS: Linux - data: - first: - Any: - second: - enabled: 0 - settings: {} - data: - first: - Editor: Editor - second: - enabled: 1 - settings: - CPU: x86 - DefaultValueInitialized: true - data: - first: - Facebook: Win - second: - enabled: 1 - settings: - CPU: AnyCPU - data: - first: - Facebook: Win64 - second: - enabled: 0 - settings: - CPU: None - data: - first: - Standalone: Linux - second: - enabled: 1 - settings: - CPU: x86 - data: - first: - Standalone: Linux64 - second: - enabled: 0 - settings: - CPU: None - data: - first: - Standalone: LinuxUniversal - second: - enabled: 1 - settings: - CPU: x86 - data: - first: - Standalone: OSXIntel - second: - enabled: 0 - settings: - CPU: None - data: - first: - Standalone: OSXIntel64 - second: - enabled: 0 - settings: - CPU: None - data: - first: - Standalone: OSXUniversal - second: - enabled: 0 - settings: - CPU: None - data: - first: - Standalone: Win - second: - enabled: 1 - settings: - CPU: AnyCPU - data: - first: - Standalone: Win64 - second: - enabled: 1 - settings: - CPU: None - userData: - assetBundleName: - assetBundleVariant: diff --git a/Binaries/Linux/x86_64/libaudioplugin_phonon.so b/Binaries/Linux/x86_64/libaudioplugin_phonon.so index 7557ebb..c1bcf1e 100755 --- a/Binaries/Linux/x86_64/libaudioplugin_phonon.so +++ b/Binaries/Linux/x86_64/libaudioplugin_phonon.so @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a4824a29e7e3516f886513597b780899a6c6f5093457af8d6337bef5bd393099 -size 72792 +oid sha256:b66769d31cf177576b51385eda69274c7f9f26c187ccca2c882d697d16bf1cf5 +size 76824 diff --git a/Binaries/Linux/x86_64/libphonon.so b/Binaries/Linux/x86_64/libphonon.so index 5e5cf94..37c43b7 100755 --- a/Binaries/Linux/x86_64/libphonon.so +++ b/Binaries/Linux/x86_64/libphonon.so @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a210a6fc5aa3e0d068a74c89b82eadec1fe199e270ef88b3f2ddf4b4c7277260 -size 20861840 +oid sha256:179edfa33d66bfdb7c73ef5845328ca6c852d2dc2f05b5ad39a0bd15038323f9 +size 20814672 diff --git a/Binaries/Windows/x86.meta b/Binaries/Windows/x86.meta deleted file mode 100755 index 3f0ce5b..0000000 --- a/Binaries/Windows/x86.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: b350a431a2f520b4b9d3e7227b7ec517 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Binaries/Windows/x86/audioplugin_phonon.dll b/Binaries/Windows/x86/audioplugin_phonon.dll deleted file mode 100755 index 5096e97..0000000 --- a/Binaries/Windows/x86/audioplugin_phonon.dll +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f48bde8e1c20d42341d1fed4fa902cc2e98deb97a6dfba356b86744a08292da8 -size 119808 diff --git a/Binaries/Windows/x86/audioplugin_phonon.dll.meta b/Binaries/Windows/x86/audioplugin_phonon.dll.meta deleted file mode 100755 index 708127c..0000000 --- a/Binaries/Windows/x86/audioplugin_phonon.dll.meta +++ /dev/null @@ -1,121 +0,0 @@ -fileFormatVersion: 2 -guid: 034df7716f3c2ee43b6049cbd524c6d7 -timeCreated: 1500675747 -licenseType: Free -PluginImporter: - serializedVersion: 2 - iconMap: {} - executionOrder: {} - isPreloaded: 1 - isOverridable: 0 - platformData: - data: - first: - '': Any - second: - enabled: 0 - settings: - Exclude Editor: 0 - Exclude Linux: 0 - Exclude Linux64: 0 - Exclude LinuxUniversal: 0 - Exclude OSXIntel: 0 - Exclude OSXIntel64: 0 - Exclude OSXUniversal: 0 - Exclude Win: 0 - Exclude Win64: 1 - data: - first: - '': Editor - second: - enabled: 0 - settings: - CPU: x86 - OS: Windows - data: - first: - Any: - second: - enabled: 0 - settings: {} - data: - first: - Editor: Editor - second: - enabled: 1 - settings: - CPU: x86 - DefaultValueInitialized: true - data: - first: - Facebook: Win - second: - enabled: 1 - settings: - CPU: AnyCPU - data: - first: - Facebook: Win64 - second: - enabled: 0 - settings: - CPU: None - data: - first: - Standalone: Linux - second: - enabled: 1 - settings: - CPU: x86 - data: - first: - Standalone: Linux64 - second: - enabled: 1 - settings: - CPU: None - data: - first: - Standalone: LinuxUniversal - second: - enabled: 1 - settings: - CPU: AnyCPU - data: - first: - Standalone: OSXIntel - second: - enabled: 1 - settings: - CPU: AnyCPU - data: - first: - Standalone: OSXIntel64 - second: - enabled: 1 - settings: - CPU: None - data: - first: - Standalone: OSXUniversal - second: - enabled: 1 - settings: - CPU: AnyCPU - data: - first: - Standalone: Win - second: - enabled: 1 - settings: - CPU: AnyCPU - data: - first: - Standalone: Win64 - second: - enabled: 0 - settings: - CPU: None - userData: - assetBundleName: - assetBundleVariant: diff --git a/Binaries/Windows/x86/phonon.dll b/Binaries/Windows/x86/phonon.dll deleted file mode 100755 index 2bde805..0000000 --- a/Binaries/Windows/x86/phonon.dll +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3d3651fe55fd9ae3678bdd23bbc721ee65939e81ae1992b4c9ccac5793c0ca00 -size 16401408 diff --git a/Binaries/Windows/x86/phonon.dll.meta b/Binaries/Windows/x86/phonon.dll.meta deleted file mode 100755 index 1247698..0000000 --- a/Binaries/Windows/x86/phonon.dll.meta +++ /dev/null @@ -1,121 +0,0 @@ -fileFormatVersion: 2 -guid: df5a46ce5e3327545a16c08880340232 -timeCreated: 1500675748 -licenseType: Free -PluginImporter: - serializedVersion: 2 - iconMap: {} - executionOrder: {} - isPreloaded: 0 - isOverridable: 0 - platformData: - data: - first: - '': Any - second: - enabled: 0 - settings: - Exclude Editor: 0 - Exclude Linux: 0 - Exclude Linux64: 0 - Exclude LinuxUniversal: 0 - Exclude OSXIntel: 0 - Exclude OSXIntel64: 0 - Exclude OSXUniversal: 0 - Exclude Win: 0 - Exclude Win64: 1 - data: - first: - '': Editor - second: - enabled: 0 - settings: - CPU: x86 - OS: Windows - data: - first: - Any: - second: - enabled: 0 - settings: {} - data: - first: - Editor: Editor - second: - enabled: 1 - settings: - CPU: x86 - DefaultValueInitialized: true - data: - first: - Facebook: Win - second: - enabled: 1 - settings: - CPU: AnyCPU - data: - first: - Facebook: Win64 - second: - enabled: 0 - settings: - CPU: None - data: - first: - Standalone: Linux - second: - enabled: 1 - settings: - CPU: x86 - data: - first: - Standalone: Linux64 - second: - enabled: 1 - settings: - CPU: None - data: - first: - Standalone: LinuxUniversal - second: - enabled: 1 - settings: - CPU: AnyCPU - data: - first: - Standalone: OSXIntel - second: - enabled: 1 - settings: - CPU: AnyCPU - data: - first: - Standalone: OSXIntel64 - second: - enabled: 1 - settings: - CPU: None - data: - first: - Standalone: OSXUniversal - second: - enabled: 1 - settings: - CPU: AnyCPU - data: - first: - Standalone: Win - second: - enabled: 1 - settings: - CPU: AnyCPU - data: - first: - Standalone: Win64 - second: - enabled: 0 - settings: - CPU: None - userData: - assetBundleName: - assetBundleVariant: diff --git a/Binaries/Windows/x86_64/audioplugin_phonon.dll b/Binaries/Windows/x86_64/audioplugin_phonon.dll index df97e6b..da1be56 100755 --- a/Binaries/Windows/x86_64/audioplugin_phonon.dll +++ b/Binaries/Windows/x86_64/audioplugin_phonon.dll @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3dad7fe151ae0f3a32d820a00c4c832c8bfe987bd8531f1a959815a49a9bfbe7 -size 154112 +oid sha256:b2819153a48ff1bd3c228fea18832020b76015a7d49a5fb5cb3895f5f11a1935 +size 154624 diff --git a/Binaries/Windows/x86_64/phonon.dll b/Binaries/Windows/x86_64/phonon.dll index 9348b67..8adfa80 100755 --- a/Binaries/Windows/x86_64/phonon.dll +++ b/Binaries/Windows/x86_64/phonon.dll @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0d2a68d4017d1a1c50e2324da9d591788c351bf60e7a4ec4583c7de4c275433b -size 20901376 +oid sha256:bfdc19808a45884520360b389d8a7cd5ad2a577852e394d2959eaf356a84d1a6 +size 29355520 diff --git a/Scripts/Editor/Build.cs b/Scripts/Editor/Build.cs index 5aa8ebd..7581a59 100755 --- a/Scripts/Editor/Build.cs +++ b/Scripts/Editor/Build.cs @@ -30,18 +30,63 @@ namespace SteamAudio public static class Build { public static void BuildSteamAudio() + { + var baseAssets = new string[] + { + "Assets/Plugins/SteamAudio/SteamAudioUnity.asmdef", + "Assets/Plugins/SteamAudio/Binaries", + "Assets/Plugins/SteamAudio/Resources", + "Assets/Plugins/SteamAudio/Scripts/Runtime", + "Assets/Plugins/SteamAudio/Scripts/Editor", + }; + + + var fmodAssets = new string[] + { + "Assets/Plugins/SteamAudio/Scripts/FMODStudio", + "Assets/Plugins/FMOD/platforms/win/lib/x86/phonon_fmod.dll", + "Assets/Plugins/FMOD/platforms/win/lib/x86_64/phonon_fmod.dll", + "Assets/Plugins/FMOD/platforms/linux/lib/x86/libphonon_fmod.so", + "Assets/Plugins/FMOD/platforms/linux/lib/x86_64/libphonon_fmod.so", + "Assets/Plugins/FMOD/platforms/mac/lib/phonon_fmod.bundle", + "Assets/Plugins/FMOD/platforms/android/lib/armeabi-v7a/libphonon_fmod.so", + "Assets/Plugins/FMOD/platforms/android/lib/arm64-v8a/libphonon_fmod.so", + "Assets/Plugins/FMOD/platforms/android/lib/x86/libphonon_fmod.so", + "Assets/Plugins/FMOD/platforms/ios/lib/libphonon_fmod.a", + }; + + var wwiseAssets = new string[] + { + "Assets/Plugins/SteamAudio/Scripts/Wwise", + "Assets/Wwise/API/Runtime/Plugins/Windows/x86/DSP/SteamAudioWwise.dll", + "Assets/Wwise/API/Runtime/Plugins/Windows/x86_64/DSP/SteamAudioWwise.dll", + "Assets/Wwise/API/Runtime/Plugins/Linux/x86_64/DSP/libSteamAudioWwise.so", + "Assets/Wwise/API/Runtime/Plugins/Mac/DSP/libSteamAudioWwise.bundle", + "Assets/Wwise/API/Runtime/Plugins/Android/armeabi-v7a/DSP/libSteamAudioWwise.so", + "Assets/Wwise/API/Runtime/Plugins/Android/arm64-v8a/DSP/libSteamAudioWwise.so", + "Assets/Wwise/API/Runtime/Plugins/Android/x86/DSP/libSteamAudioWwise.so", + "Assets/Wwise/API/Runtime/Plugins/iOS/iphoneos/DSP/SteamAudioWwiseFXFactory.h", + "Assets/Wwise/API/Runtime/Plugins/iOS/iphoneos/DSP/libSteamAudioWwiseFX.a", + "Assets/Wwise/API/Runtime/Plugins/iOS/iphonesimulator/DSP/SteamAudioWwiseFXFactory.h", + "Assets/Wwise/API/Runtime/Plugins/iOS/iphonesimulator/DSP/libSteamAudioWwiseFX.a", + }; + + BuildPackage("SteamAudio", baseAssets); + BuildPackage("SteamAudioFMODStudio", fmodAssets); + BuildPackage("SteamAudioWwise", wwiseAssets); + } + + private static void BuildPackage(string name, string[] assets) { var args = Environment.GetCommandLineArgs(); var lastArg = args[args.Length - 1]; - var fileName = "SteamAudio.unitypackage"; + var fileName = name + ".unitypackage"; if (lastArg != "SteamAudio.Build.BuildSteamAudio") { fileName = lastArg + "/" + fileName; } - var assets = new string[] { "Assets/Plugins" }; - AssetDatabase.ExportPackage(assets, fileName, ExportPackageOptions.Recurse); } } @@ -59,6 +104,7 @@ namespace SteamAudio NamedBuildTarget.Standalone, NamedBuildTarget.Android, NamedBuildTarget.iOS, + NamedBuildTarget.WebGL, }; foreach (var supportedPlatform in supportedPlatforms) diff --git a/Scripts/Editor/SteamAudioSettingsInspector.cs b/Scripts/Editor/SteamAudioSettingsInspector.cs index bbd176c..3f43e80 100755 --- a/Scripts/Editor/SteamAudioSettingsInspector.cs +++ b/Scripts/Editor/SteamAudioSettingsInspector.cs @@ -23,6 +23,7 @@ namespace SteamAudio public class SteamAudioSettingsInspector : Editor { SerializedProperty mAudioEngine; + SerializedProperty mHRTFDisabled; SerializedProperty mPerspectiveCorrection; SerializedProperty mPerspectiveCorrectionFactor; SerializedProperty mHRTFVolumeNormalizationType; @@ -77,6 +78,7 @@ namespace SteamAudio private void OnEnable() { mAudioEngine = serializedObject.FindProperty("audioEngine"); + mHRTFDisabled = serializedObject.FindProperty("hrtfDisabled"); mPerspectiveCorrection = serializedObject.FindProperty("perspectiveCorrection"); mPerspectiveCorrectionFactor = serializedObject.FindProperty("perspectiveCorrectionFactor"); mHRTFVolumeGainDB = serializedObject.FindProperty("hrtfVolumeGainDB"); @@ -126,6 +128,7 @@ namespace SteamAudio serializedObject.Update(); EditorGUILayout.PropertyField(mAudioEngine); + EditorGUILayout.PropertyField(mHRTFDisabled, new UnityEngine.GUIContent("Disable HRTF Globally", "Disable HRTF rendering for all events/sources. Useful when the end user is using speakers instead of headphones.")); EditorGUILayout.PropertyField(mPerspectiveCorrection, new UnityEngine.GUIContent("Enable Perspective Correction")); if (mPerspectiveCorrection.boolValue) diff --git a/Scripts/Runtime/AudioEngineSource.cs b/Scripts/Runtime/AudioEngineSource.cs index f60aaf4..24e7c32 100755 --- a/Scripts/Runtime/AudioEngineSource.cs +++ b/Scripts/Runtime/AudioEngineSource.cs @@ -16,7 +16,6 @@ #if STEAMAUDIO_ENABLED using System; -using System.Reflection; using UnityEngine; namespace SteamAudio @@ -43,6 +42,8 @@ namespace SteamAudio return new UnityAudioEngineSource(); case AudioEngineType.FMODStudio: return CreateFMODStudioAudioEngineSource(); + case AudioEngineType.Wwise: + return CreateWwiseAudioEngineSource(); default: return null; } @@ -50,9 +51,18 @@ namespace SteamAudio private static AudioEngineSource CreateFMODStudioAudioEngineSource() { - var type = Type.GetType("SteamAudio.FMODStudioAudioEngineSource,SteamAudioUnity"); + var type = Type.GetType("SteamAudio.FMODStudioAudioEngineSource,SteamAudioFMODStudio"); return (type != null) ? (AudioEngineSource) Activator.CreateInstance(type) : null; } + + private static AudioEngineSource CreateWwiseAudioEngineSource() + { + var type = Type.GetType("SteamAudio.WwiseAudioEngineSource,SteamAudioWwiseUnity"); + if (type == null) + return null; + + return (AudioEngineSource) Activator.CreateInstance(type); + } } } diff --git a/Scripts/Runtime/AudioEngineState.cs b/Scripts/Runtime/AudioEngineState.cs index e9a47aa..2229492 100755 --- a/Scripts/Runtime/AudioEngineState.cs +++ b/Scripts/Runtime/AudioEngineState.cs @@ -16,9 +16,7 @@ #if STEAMAUDIO_ENABLED using System; -using System.Reflection; using UnityEngine; -using SteamAudio; namespace SteamAudio { @@ -47,6 +45,8 @@ namespace SteamAudio return new UnityAudioEngineState(); case AudioEngineType.FMODStudio: return CreateFMODStudioAudioEngineState(); + case AudioEngineType.Wwise: + return CreateWwiseAudioEngineState(); default: return null; } @@ -54,9 +54,21 @@ namespace SteamAudio private static AudioEngineState CreateFMODStudioAudioEngineState() { - var type = Type.GetType("SteamAudio.FMODStudioAudioEngineState,SteamAudioUnity"); + var type = Type.GetType("SteamAudio.FMODStudioAudioEngineState,SteamAudioFMODStudio"); return (type != null) ? (AudioEngineState) Activator.CreateInstance(type) : null; } + + private static AudioEngineState CreateWwiseAudioEngineState() + { + var type = Type.GetType("SteamAudio.WwiseAudioEngineState,SteamAudioWwiseUnity"); + if (type == null) + return null; + + return (AudioEngineState) Activator.CreateInstance(type); + } + + public virtual void SetHRTFDisabled(bool disabled) + { } } public abstract class AudioEngineStateHelpers @@ -73,6 +85,8 @@ namespace SteamAudio return new UnityAudioEngineStateHelpers(); case AudioEngineType.FMODStudio: return CreateFMODStudioAudioEngineStateHelpers(); + case AudioEngineType.Wwise: + return CreateWwiseAudioEngineStateHelpers(); default: return null; } @@ -80,9 +94,18 @@ namespace SteamAudio private static AudioEngineStateHelpers CreateFMODStudioAudioEngineStateHelpers() { - var type = Type.GetType("SteamAudio.FMODStudioAudioEngineStateHelpers,SteamAudioUnity"); + var type = Type.GetType("SteamAudio.FMODStudioAudioEngineStateHelpers,SteamAudioFMODStudio"); return (type != null) ? (AudioEngineStateHelpers) Activator.CreateInstance(type) : null; } + + private static AudioEngineStateHelpers CreateWwiseAudioEngineStateHelpers() + { + var type = Type.GetType("SteamAudio.WwiseAudioEngineStateHelpers,SteamAudioWwiseUnity"); + if (type == null) + return null; + + return (AudioEngineStateHelpers) Activator.CreateInstance(type); + } } } diff --git a/Scripts/Runtime/SteamAudio.cs b/Scripts/Runtime/SteamAudio.cs index 2cedafa..10e1cfd 100755 --- a/Scripts/Runtime/SteamAudio.cs +++ b/Scripts/Runtime/SteamAudio.cs @@ -25,8 +25,8 @@ namespace SteamAudio public static class Constants { public const uint kVersionMajor = 4; - public const uint kVersionMinor = 5; - public const uint kVersionPatch = 1; + public const uint kVersionMinor = 6; + public const uint kVersionPatch = 0; public const uint kVersion = (kVersionMajor << 16) | (kVersionMinor << 8) | kVersionPatch; } @@ -666,21 +666,21 @@ namespace SteamAudio { // Context -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern Error iplContextCreate(ref ContextSettings settings, out IntPtr context); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern IntPtr iplContextRetain(IntPtr context); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] @@ -689,7 +689,7 @@ namespace SteamAudio // Geometry -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] @@ -698,35 +698,35 @@ namespace SteamAudio // Serialization -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern Error iplSerializedObjectCreate(IntPtr context, ref SerializedObjectSettings settings, out IntPtr serializedObject); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern IntPtr iplSerializedObjectRetain(IntPtr serializedObject); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern void iplSerializedObjectRelease(ref IntPtr serializedObject); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern UIntPtr iplSerializedObjectGetSize(IntPtr serializedObject); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] @@ -735,21 +735,21 @@ namespace SteamAudio // Embree -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern Error iplEmbreeDeviceCreate(IntPtr context, ref EmbreeDeviceSettings settings, out IntPtr device); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern IntPtr iplEmbreeDeviceRetain(IntPtr device); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] @@ -758,56 +758,56 @@ namespace SteamAudio // OpenCL -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern Error iplOpenCLDeviceListCreate(IntPtr context, ref OpenCLDeviceSettings settings, out IntPtr deviceList); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern IntPtr iplOpenCLDeviceListRetain(IntPtr deviceList); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern void iplOpenCLDeviceListRelease(ref IntPtr deviceList); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern int iplOpenCLDeviceListGetNumDevices(IntPtr deviceList); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern void iplOpenCLDeviceListGetDeviceDesc(IntPtr deviceList, int index, out OpenCLDeviceDesc deviceDesc); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern Error iplOpenCLDeviceCreate(IntPtr context, IntPtr deviceList, int index, out IntPtr device); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern IntPtr iplOpenCLDeviceRetain(IntPtr device); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] @@ -816,21 +816,21 @@ namespace SteamAudio // Radeon Rays -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern Error iplRadeonRaysDeviceCreate(IntPtr openCLDevice, ref RadeonRaysDeviceSettings settings, out IntPtr rrDevice); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern IntPtr iplRadeonRaysDeviceRetain(IntPtr device); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] @@ -839,21 +839,21 @@ namespace SteamAudio // TrueAudio Next -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern Error iplTrueAudioNextDeviceCreate(IntPtr openCLDevice, ref TrueAudioNextDeviceSettings settings, out IntPtr tanDevice); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern IntPtr iplTrueAudioNextDeviceRetain(IntPtr device); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] @@ -862,140 +862,140 @@ namespace SteamAudio // Scene -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern Error iplSceneCreate(IntPtr context, ref SceneSettings settings, out IntPtr scene); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern IntPtr iplSceneRetain(IntPtr scene); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern void iplSceneRelease(ref IntPtr scene); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern Error iplSceneLoad(IntPtr context, ref SceneSettings settings, IntPtr serializedObject, ProgressCallback progressCallback, IntPtr progressCallbackUserData, out IntPtr scene); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern void iplSceneSave(IntPtr scene, IntPtr serializedObject); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern void iplSceneSaveOBJ(IntPtr scene, string fileBaseName); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern void iplSceneCommit(IntPtr scene); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern Error iplStaticMeshCreate(IntPtr scene, ref StaticMeshSettings settings, out IntPtr staticMesh); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern IntPtr iplStaticMeshRetain(IntPtr staticMesh); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern void iplStaticMeshRelease(ref IntPtr staticMesh); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern Error iplStaticMeshLoad(IntPtr scene, IntPtr serializedObject, ProgressCallback progressCallback, IntPtr progressCallbackUserData, out IntPtr staticMesh); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern void iplStaticMeshSave(IntPtr staticMesh, IntPtr serializedObject); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern void iplStaticMeshAdd(IntPtr staticMesh, IntPtr scene); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern void iplStaticMeshRemove(IntPtr staticMesh, IntPtr scene); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern Error iplInstancedMeshCreate(IntPtr scene, ref InstancedMeshSettings settings, out IntPtr instancedMesh); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern IntPtr iplInstancedMeshRetain(IntPtr instancedMesh); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern void iplInstancedMeshRelease(ref IntPtr instancedMesh); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern void iplInstancedMeshAdd(IntPtr instancedMesh, IntPtr scene); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern void iplInstancedMeshRemove(IntPtr instancedMesh, IntPtr scene); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] @@ -1004,21 +1004,21 @@ namespace SteamAudio // HRTF -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern Error iplHRTFCreate(IntPtr context, ref AudioSettings audioSettings, ref HRTFSettings hrtfSettings, out IntPtr hrtf); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern IntPtr iplHRTFRetain(IntPtr hrtf); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] @@ -1027,126 +1027,126 @@ namespace SteamAudio // Probes -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern Error iplProbeArrayCreate(IntPtr context, out IntPtr probeArray); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern IntPtr iplProbeArrayRetain(IntPtr probeArray); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern void iplProbeArrayRelease(ref IntPtr probeArray); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern void iplProbeArrayGenerateProbes(IntPtr probeArray, IntPtr scene, ref ProbeGenerationParams generationParams); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern int iplProbeArrayGetNumProbes(IntPtr probeArray); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern Sphere iplProbeArrayGetProbe(IntPtr probeArray, int index); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern Error iplProbeBatchCreate(IntPtr context, out IntPtr probeBatch); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern IntPtr iplProbeBatchRetain(IntPtr probeBatch); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern void iplProbeBatchRelease(ref IntPtr probeBatch); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern Error iplProbeBatchLoad(IntPtr context, IntPtr serializedObject, out IntPtr probeBatch); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern void iplProbeBatchSave(IntPtr probeBatch, IntPtr serializedObject); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern int iplProbeBatchGetNumProbes(IntPtr probeBatch); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern void iplProbeBatchAddProbe(IntPtr probeBatch, Sphere probe); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern void iplProbeBatchAddProbeArray(IntPtr probeBatch, IntPtr probeArray); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern void iplProbeBatchRemoveProbe(IntPtr probeBatch, int index); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern void iplProbeBatchCommit(IntPtr probeBatch); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern void iplProbeBatchRemoveData(IntPtr probeBatch, ref BakedDataIdentifier identifier); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] @@ -1155,28 +1155,28 @@ namespace SteamAudio // Baking -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern void iplReflectionsBakerBake(IntPtr context, ref ReflectionsBakeParams bakeParams, ProgressCallback progressCallback, IntPtr userData); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern void iplReflectionsBakerCancelBake(IntPtr context); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern void iplPathBakerBake(IntPtr context, ref PathBakeParams bakeParams, ProgressCallback progressCallback, IntPtr userData); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] @@ -1185,126 +1185,126 @@ namespace SteamAudio // Run-Time Simulation -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern Error iplSimulatorCreate(IntPtr context, ref SimulationSettings settings, out IntPtr simulator); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern IntPtr iplSimulatorRetain(IntPtr simulator); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern void iplSimulatorRelease(ref IntPtr simulator); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern void iplSimulatorSetScene(IntPtr simulator, IntPtr scene); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern void iplSimulatorAddProbeBatch(IntPtr simulator, IntPtr probeBatch); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern void iplSimulatorRemoveProbeBatch(IntPtr simulator, IntPtr probeBatch); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern void iplSimulatorSetSharedInputs(IntPtr simulator, SimulationFlags flags, ref SimulationSharedInputs sharedInputs); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern void iplSimulatorCommit(IntPtr simulator); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern void iplSimulatorRunDirect(IntPtr simulator); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern void iplSimulatorRunReflections(IntPtr simulator); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern void iplSimulatorRunPathing(IntPtr simulator); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern Error iplSourceCreate(IntPtr simulator, ref SourceSettings settings, out IntPtr source); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern IntPtr iplSourceRetain(IntPtr source); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern void iplSourceRelease(ref IntPtr source); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern void iplSourceAdd(IntPtr source, IntPtr simulator); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern void iplSourceRemove(IntPtr source, IntPtr simulator); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] #endif public static extern void iplSourceSetInputs(IntPtr source, SimulationFlags flags, ref SimulationInputs inputs); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("phonon")] @@ -1313,60 +1313,67 @@ namespace SteamAudio // UNITY PLUGIN -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("audioplugin_phonon")] #endif public static extern void iplUnityInitialize(IntPtr context); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("audioplugin_phonon")] #endif public static extern void iplUnitySetPerspectiveCorrection(PerspectiveCorrection correction); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("audioplugin_phonon")] #endif public static extern void iplUnitySetHRTF(IntPtr hrtf); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("audioplugin_phonon")] #endif public static extern void iplUnitySetSimulationSettings(SimulationSettings simulationSettings); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("audioplugin_phonon")] #endif public static extern void iplUnitySetReverbSource(IntPtr reverbSource); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("audioplugin_phonon")] #endif public static extern int iplUnityAddSource(IntPtr source); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("audioplugin_phonon")] #endif public static extern void iplUnityRemoveSource(int handle); -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("audioplugin_phonon")] #endif public static extern void iplUnityTerminate(); + +#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR + [DllImport("__Internal")] +#else + [DllImport("audioplugin_phonon")] +#endif + public static extern void iplUnitySetHRTFDisabled(bool disabled); } } diff --git a/Scripts/Runtime/SteamAudioManager.cs b/Scripts/Runtime/SteamAudioManager.cs index f684fb7..19e17c1 100755 --- a/Scripts/Runtime/SteamAudioManager.cs +++ b/Scripts/Runtime/SteamAudioManager.cs @@ -506,6 +506,7 @@ namespace SteamAudio if (mAudioEngineState == null) return; + mAudioEngineState.SetHRTFDisabled(SteamAudioSettings.Singleton.hrtfDisabled); var perspectiveCorrection = GetPerspectiveCorrection(); mAudioEngineState.SetPerspectiveCorrection(perspectiveCorrection); @@ -1260,6 +1261,12 @@ namespace SteamAudio var dataAsset = (!exportOBJ) ? GetDataAsset(dynamicObject) : null; var objFileName = (exportOBJ) ? GetOBJFileName(dynamicObject) : ""; + if (!exportOBJ && dataAsset == null) + return; + + if (exportOBJ && (objFileName == null || objFileName.Length == 0)) + return; + Export(objects, dynamicObject.name, dataAsset, objFileName, true, exportOBJ); } diff --git a/Scripts/Runtime/SteamAudioSettings.cs b/Scripts/Runtime/SteamAudioSettings.cs index 54368e2..1b476f7 100755 --- a/Scripts/Runtime/SteamAudioSettings.cs +++ b/Scripts/Runtime/SteamAudioSettings.cs @@ -24,7 +24,8 @@ namespace SteamAudio public enum AudioEngineType { Unity, - FMODStudio + FMODStudio, + Wwise } [CreateAssetMenu(menuName = "Steam Audio/Steam Audio Settings")] @@ -34,6 +35,7 @@ namespace SteamAudio public AudioEngineType audioEngine = AudioEngineType.Unity; [Header("HRTF Settings")] + public bool hrtfDisabled = false; public bool perspectiveCorrection = false; [Range(.25f, 4.0f)] public float perspectiveCorrectionFactor = 1.0f; diff --git a/Scripts/Runtime/SteamAudioSource.cs b/Scripts/Runtime/SteamAudioSource.cs index d6a5184..3886edd 100755 --- a/Scripts/Runtime/SteamAudioSource.cs +++ b/Scripts/Runtime/SteamAudioSource.cs @@ -227,7 +227,10 @@ namespace SteamAudio ~SteamAudioSource() { - mThis.Free(); + if (mThis.IsAllocated) + { + mThis.Free(); + } } private void OnEnable() @@ -510,7 +513,7 @@ namespace SteamAudio case AudioRolloffMode.Logarithmic: if (distance < rMin) return 1.0f; - else if (distance < rMax) + else if (distance > rMax) return 0.0f; else return rMin / distance; diff --git a/Scripts/Runtime/UnityAudioEngineState.cs b/Scripts/Runtime/UnityAudioEngineState.cs index 2f72e81..2b00ef9 100755 --- a/Scripts/Runtime/UnityAudioEngineState.cs +++ b/Scripts/Runtime/UnityAudioEngineState.cs @@ -49,6 +49,13 @@ namespace SteamAudio { API.iplUnitySetReverbSource(reverbSource.Get()); } + + public override void SetHRTFDisabled(bool disabled) + { + base.SetHRTFDisabled(disabled); + + API.iplUnitySetHRTFDisabled(disabled); + } } public sealed class UnityAudioEngineStateHelpers : AudioEngineStateHelpers