summaryrefslogtreecommitdiff
path: root/VRCSDK3AvatarsLegacy/Assets/VRCSDK/Dependencies/Oculus/Spatializer/Scripts/ONSPSettings.cs
diff options
context:
space:
mode:
Diffstat (limited to 'VRCSDK3AvatarsLegacy/Assets/VRCSDK/Dependencies/Oculus/Spatializer/Scripts/ONSPSettings.cs')
-rw-r--r--VRCSDK3AvatarsLegacy/Assets/VRCSDK/Dependencies/Oculus/Spatializer/Scripts/ONSPSettings.cs55
1 files changed, 55 insertions, 0 deletions
diff --git a/VRCSDK3AvatarsLegacy/Assets/VRCSDK/Dependencies/Oculus/Spatializer/Scripts/ONSPSettings.cs b/VRCSDK3AvatarsLegacy/Assets/VRCSDK/Dependencies/Oculus/Spatializer/Scripts/ONSPSettings.cs
new file mode 100644
index 00000000..de9c0c19
--- /dev/null
+++ b/VRCSDK3AvatarsLegacy/Assets/VRCSDK/Dependencies/Oculus/Spatializer/Scripts/ONSPSettings.cs
@@ -0,0 +1,55 @@
+using UnityEngine;
+using System.Collections;
+
+#if UNITY_EDITOR
+[UnityEditor.InitializeOnLoad]
+#endif
+public sealed class ONSPSettings : ScriptableObject
+{
+ [SerializeField]
+ public int voiceLimit = 16; // very conservative fallback
+
+ private static ONSPSettings instance;
+ public static ONSPSettings Instance
+ {
+ get
+ {
+ if (instance == null)
+ {
+#if UNITY_ANDROID
+ instance = Resources.Load<ONSPSettings>("ONSPSettings-Android");
+#else
+ instance = Resources.Load<ONSPSettings>("ONSPSettings");
+#endif
+
+ // This can happen if the developer never input their App Id into the Unity Editor
+ // and therefore never created the OculusPlatformSettings.asset file
+ // Use a dummy object with defaults for the getters so we don't have a null pointer exception
+ if (instance == null)
+ {
+ instance = ScriptableObject.CreateInstance<ONSPSettings>();
+
+#if UNITY_EDITOR
+ // Only in the editor should we save it to disk
+ string properPath = System.IO.Path.Combine(UnityEngine.Application.dataPath, "Resources");
+ if (!System.IO.Directory.Exists(properPath))
+ {
+ UnityEditor.AssetDatabase.CreateFolder("Assets", "Resources");
+ }
+
+ string fullPath = System.IO.Path.Combine(
+ System.IO.Path.Combine("Assets", "Resources"),
+#if UNITY_ANDROID
+ "ONSPSettings-Android.asset");
+#else
+ "ONSPSettings.asset");
+#endif
+ UnityEditor.AssetDatabase.CreateAsset(instance, fullPath);
+#endif
+ }
+ }
+
+ return instance;
+ }
+ }
+}