Пример #1
0
        public override void OnInspectorGUI()
        {
            serializedObject.Update();

            EditorGUILayout.PropertyField(m_Volume, Styles.Volume);
            EditorGUILayout.PropertyField(m_RolloffScale, Styles.RolloffScale);
            EditorGUILayout.PropertyField(m_DopplerFactor, Styles.DopplerFactor);
            EditorGUILayout.PropertyField(m_DefaultSpeakerMode, Styles.DefaultSpeakerMode);
            EditorGUILayout.PropertyField(m_SampleRate, Styles.SampleRate);
            EditorGUILayout.PropertyField(m_RequestedDSPBufferSize, Styles.DSPBufferSize);
            if (m_RequestedDSPBufferSize.intValue != m_ActualDSPBufferSize.intValue)
            {
                EditorGUILayout.HelpBox(
                    string.Format(Styles.DSPBufferSizeInfo.text,
                                  m_RequestedDSPBufferSize.intValue == 0 ? "default" : m_RequestedDSPBufferSize.intValue.ToString(),
                                  m_ActualDSPBufferSize.intValue),
                    MessageType.Info);
            }
            EditorGUILayout.PropertyField(m_VirtualVoiceCount, Styles.VirtualVoiceCount);
            EditorGUILayout.PropertyField(m_RealVoiceCount, Styles.RealVoiceCount);

            List <string> plugins = new List <string>(AudioSettings.GetSpatializerPluginNames());

            plugins.Insert(0, "None");
            string[] pluginsArray = plugins.ToArray();

            List <GUIContent> pluginsGUIContent = new List <GUIContent>();

            foreach (var s in pluginsArray)
            {
                pluginsGUIContent.Add(new GUIContent(s));
            }

            List <string> ambisonicDecoderPlugins = new List <string>(AudioUtil.GetAmbisonicDecoderPluginNames());

            ambisonicDecoderPlugins.Insert(0, "None");
            string[] ambisonicDecoderPluginsArray = ambisonicDecoderPlugins.ToArray();

            List <GUIContent> ambisonicDecoderPluginsGUIContent = new List <GUIContent>();

            foreach (var s in ambisonicDecoderPluginsArray)
            {
                ambisonicDecoderPluginsGUIContent.Add(new GUIContent(s));
            }

            EditorGUI.BeginChangeCheck();
            int pluginIndex = FindPluginStringIndex(pluginsArray, m_SpatializerPlugin.stringValue);

            pluginIndex = EditorGUILayout.Popup(Styles.SpatializerPlugin, pluginIndex, pluginsGUIContent.ToArray());
            if (EditorGUI.EndChangeCheck())
            {
                if (pluginIndex == 0)
                {
                    m_SpatializerPlugin.stringValue = "";
                }
                else
                {
                    m_SpatializerPlugin.stringValue = pluginsArray[pluginIndex];
                }
            }

            EditorGUI.BeginChangeCheck();
            pluginIndex = FindPluginStringIndex(ambisonicDecoderPluginsArray, m_AmbisonicDecoderPlugin.stringValue);
            pluginIndex = EditorGUILayout.Popup(Styles.AmbisonicDecoderPlugin, pluginIndex, ambisonicDecoderPluginsGUIContent.ToArray());
            if (EditorGUI.EndChangeCheck())
            {
                if (pluginIndex == 0)
                {
                    m_AmbisonicDecoderPlugin.stringValue = "";
                }
                else
                {
                    m_AmbisonicDecoderPlugin.stringValue = ambisonicDecoderPluginsArray[pluginIndex];
                }
            }

            EditorGUI.BeginChangeCheck();

            EditorGUILayout.PropertyField(m_DisableAudio, Styles.DisableAudio);
            EditorGUILayout.PropertyField(m_VirtualizeEffects, Styles.VirtualizeEffects);

            serializedObject.ApplyModifiedProperties();
        }
Пример #2
0
        public void Activate()
        {
            if (!string.IsNullOrEmpty(Spatializer))
            {
                var hasSpatializer = AudioSettings
                                     .GetSpatializerPluginNames()
                                     .Contains(Spatializer);

                if (hasSpatializer)
                {
                    AudioSettings.SetSpatializerPluginName(Spatializer);
                    AudioSettingsExt.SetAmbisonicDecoderPluginName(Spatializer);
                }
            }

            var buildTargetGroup = GetTargetGroup();

#pragma warning disable CS0618 // Type or member is obsolete
            var supportedVRSDKs = PlayerSettings.GetAvailableVirtualRealitySDKs(buildTargetGroup);
            var vrSDKs          = XRPlatforms
                                  .Distinct()
                                  .Select(x => x.ToString())
                                  .Where(supportedVRSDKs.Contains)
                                  .ToArray();

            var enableVR = vrSDKs.Any(sdk => sdk != "None");
            if (enableVR != PlayerSettings.GetVirtualRealitySupported(buildTargetGroup))
            {
                PlayerSettings.SetVirtualRealitySupported(buildTargetGroup, enableVR);
                if (enableVR && !vrSDKs.Matches(PlayerSettings.GetVirtualRealitySDKs(buildTargetGroup)))
                {
                    PlayerSettings.SetVirtualRealitySDKs(buildTargetGroup, vrSDKs);
                }
            }
#pragma warning restore CS0618 // Type or member is obsolete

            if (buildTargetGroup == BuildTargetGroup.WSA)
            {
                EditorUserBuildSettings.wsaBuildAndRunDeployTarget = WSABuildAndRunDeployTarget.LocalMachine;
                EditorUserBuildSettings.wsaUWPBuildType            = WSAUWPBuildType.D3D;
                PlayerSettings.WSA.inputSource = PlayerSettings.WSAInputSource.IndependentInputSource;
                if (Enum.TryParse(WsaSubtarget, out WSASubtarget sub))
                {
                    EditorUserBuildSettings.wsaSubtarget = sub;
                    PlayerSettings.WSA.SetCapability(PlayerSettings.WSACapability.SpatialPerception, sub == WSASubtarget.HoloLens);
                }
            }
            else if (buildTargetGroup == BuildTargetGroup.Android &&
                     Enum.TryParse(AndroidSdkVersion, out AndroidSdkVersions sdkVersion))
            {
                PlayerSettings.Android.minSdkVersion = (AndroidSdkVersions)Math.Max(
                    (int)PlayerSettings.Android.minSdkVersion,
                    (int)sdkVersion);
            }
            else if (buildTargetGroup == BuildTargetGroup.iOS &&
                     Version.TryParse(IOSVersion, out var v) &&
                     ApplleiOS.TargetOSVersion < v)
            {
                ApplleiOS.TargetOSVersion = v;
            }

            var curDefines = Project.GetDefines();
            curDefines.AddRange(GetCompilerDefines());
            Project.SetDefines(curDefines);
        }
 private void OnEnable()
 {
     spatializerPluginNames = AudioSettings.GetSpatializerPluginNames();
     spatializerPluginNames = spatializerPluginNames.Prepend("None").ToArray();
     index = Math.Max(Array.IndexOf(spatializerPluginNames, SpatializerPlugin), 0);
 }
        public override void OnInspectorGUI()
        {
            base.serializedObject.Update();
            EditorGUILayout.PropertyField(this.m_Volume, AudioManagerInspector.Styles.Volume, new GUILayoutOption[0]);
            EditorGUILayout.PropertyField(this.m_RolloffScale, AudioManagerInspector.Styles.RolloffScale, new GUILayoutOption[0]);
            EditorGUILayout.PropertyField(this.m_DopplerFactor, AudioManagerInspector.Styles.DopplerFactor, new GUILayoutOption[0]);
            EditorGUILayout.PropertyField(this.m_DefaultSpeakerMode, AudioManagerInspector.Styles.DefaultSpeakerMode, new GUILayoutOption[0]);
            EditorGUILayout.PropertyField(this.m_SampleRate, AudioManagerInspector.Styles.SampleRate, new GUILayoutOption[0]);
            EditorGUILayout.PropertyField(this.m_DSPBufferSize, AudioManagerInspector.Styles.DSPBufferSize, new GUILayoutOption[0]);
            EditorGUILayout.PropertyField(this.m_VirtualVoiceCount, AudioManagerInspector.Styles.VirtualVoiceCount, new GUILayoutOption[0]);
            EditorGUILayout.PropertyField(this.m_RealVoiceCount, AudioManagerInspector.Styles.RealVoiceCount, new GUILayoutOption[0]);
            List <string> list = new List <string>(AudioSettings.GetSpatializerPluginNames());

            list.Insert(0, "None");
            string[]          array = list.ToArray();
            List <GUIContent> list2 = new List <GUIContent>();

            string[] array2 = array;
            for (int i = 0; i < array2.Length; i++)
            {
                string text = array2[i];
                list2.Add(new GUIContent(text));
            }
            List <string> list3 = new List <string>(AudioUtil.GetAmbisonicDecoderPluginNames());

            list3.Insert(0, "None");
            string[]          array3 = list3.ToArray();
            List <GUIContent> list4  = new List <GUIContent>();

            string[] array4 = array3;
            for (int j = 0; j < array4.Length; j++)
            {
                string text2 = array4[j];
                list4.Add(new GUIContent(text2));
            }
            EditorGUI.BeginChangeCheck();
            int num = this.FindPluginStringIndex(array, this.m_SpatializerPlugin.stringValue);

            num = EditorGUILayout.Popup(AudioManagerInspector.Styles.SpatializerPlugin, num, list2.ToArray(), new GUILayoutOption[0]);
            if (EditorGUI.EndChangeCheck())
            {
                if (num == 0)
                {
                    this.m_SpatializerPlugin.stringValue = "";
                }
                else
                {
                    this.m_SpatializerPlugin.stringValue = array[num];
                }
            }
            EditorGUI.BeginChangeCheck();
            num = this.FindPluginStringIndex(array3, this.m_AmbisonicDecoderPlugin.stringValue);
            num = EditorGUILayout.Popup(AudioManagerInspector.Styles.AmbisonicDecoderPlugin, num, list4.ToArray(), new GUILayoutOption[0]);
            if (EditorGUI.EndChangeCheck())
            {
                if (num == 0)
                {
                    this.m_AmbisonicDecoderPlugin.stringValue = "";
                }
                else
                {
                    this.m_AmbisonicDecoderPlugin.stringValue = array3[num];
                }
            }
            EditorGUI.BeginChangeCheck();
            EditorGUILayout.PropertyField(this.m_DisableAudio, AudioManagerInspector.Styles.DisableAudio, new GUILayoutOption[0]);
            EditorGUILayout.PropertyField(this.m_VirtualizeEffects, AudioManagerInspector.Styles.VirtualizeEffects, new GUILayoutOption[0]);
            base.serializedObject.ApplyModifiedProperties();
        }