private void VRDevicesGUIOneBuildTarget(BuildTargetGroup targetGroup)
        {
            // create reorderable list for this target if needed
            if (!m_VRDeviceActiveUI.ContainsKey(targetGroup))
            {
                var rlist = new ReorderableList(VREditor.GetVREnabledDevicesOnTargetGroup(targetGroup), typeof(VRDeviceInfoEditor), true, true, true, true);
                rlist.onAddDropdownCallback = (rect, list) => AddVRDeviceElement(targetGroup, rect, list);
                rlist.onRemoveCallback      = (list) => RemoveVRDeviceElement(targetGroup, list);
                rlist.onReorderCallback     = (list) => ReorderVRDeviceElement(targetGroup, list);
                rlist.drawElementCallback   = (rect, index, isActive, isFocused) => DrawVRDeviceElement(targetGroup, rect, index, isActive, isFocused);
                rlist.drawHeaderCallback    = (rect) => GUI.Label(rect, Styles.listHeader, EditorStyles.label);
                rlist.elementHeightCallback = (index) => GetVRDeviceElementHeight(targetGroup, index);
                rlist.onSelectCallback      = (list) => SelectVRDeviceElement(targetGroup, list);
                m_VRDeviceActiveUI.Add(targetGroup, rlist);
            }

            m_VRDeviceActiveUI[targetGroup].DoLayoutList();

            if (m_VRDeviceActiveUI[targetGroup].list.Count == 0)
            {
                EditorGUILayout.HelpBox("Must add at least one Virtual Reality SDK.", MessageType.Warning);
            }
        }
Exemple #2
0
 public static string[] GetVREnabledDevices(BuildTargetGroup targetGroup)
 {
     return(VREditor.GetVREnabledDevicesOnTargetGroup(targetGroup));
 }
 private bool GetVRDeviceElementIsInList(BuildTargetGroup target, string deviceName)
 {
     string[] vREnabledDevicesOnTargetGroup = VREditor.GetVREnabledDevicesOnTargetGroup(target);
     return(vREnabledDevicesOnTargetGroup.Contains(deviceName));
 }
        internal void XRSectionGUI(BuildTargetGroup targetGroup, int sectionIndex)
        {
            GUISectionIndex = sectionIndex;

            if (!TargetGroupSupportsVirtualReality(targetGroup) && !TargetGroupSupportsAugmentedReality(targetGroup))
            {
                return;
            }

            if (m_VRDeviceActiveUI.ContainsKey(targetGroup) && VREditor.IsDeviceListDirty(targetGroup))
            {
                VREditor.ClearDeviceListDirty(targetGroup);
                if (m_VRDeviceActiveUI.ContainsKey(targetGroup))
                {
                    m_VRDeviceActiveUI[targetGroup].list = VREditor.GetVREnabledDevicesOnTargetGroup(targetGroup);
                }
            }

            // Check to see if any devices require an install and need their GUI hidden
            CheckDevicesRequireInstall(targetGroup);

            if (m_Settings.BeginSettingsBox(sectionIndex, Styles.xrSettingsTitle))
            {
                if (EditorApplication.isPlaying)
                {
                    EditorGUILayout.HelpBox("Changing XR Settings is not allowed in play mode.", MessageType.Info);
                }

                using (new EditorGUI.DisabledScope(EditorApplication.isPlaying)) // switching VR flags in play mode is not supported
                {
                    bool shouldVRDeviceSettingsBeDisabled = XRProjectSettings.GetBool(XRProjectSettings.KnownSettings.k_VRDeviceDisabled, false);;
                    using (new EditorGUI.DisabledGroupScope(shouldVRDeviceSettingsBeDisabled))
                    {
                        if (shouldVRDeviceSettingsBeDisabled)
                        {
                            EditorGUILayout.HelpBox("Legacy XR is currently disabled. Unity has detected that you have one or more XR SDK Provider packages installed. Legacy XR is incompatible with XR SDK. Remove all XR SDK Pacakges from your project to re-enable legacy XR", MessageType.Warning);

                            if (!XRProjectSettings.GetBool(XRProjectSettings.KnownSettings.k_VRDeviceDidAlertUser))
                            {
                                EditorUtility.DisplayDialog("Legacy XR Disabled", "Unity has detected that you have one or more XR SDK Provider packages installed. Legacy XR is incompatible with XR SDK. Remove all XR SDK Pacakges from your project to re-enable legacy XR", "Ok");
                                XRProjectSettings.SetBool(XRProjectSettings.KnownSettings.k_VRDeviceDidAlertUser, true);
                            }
                        }
                        DevicesGUI(targetGroup);

                        ErrorOnVRDeviceIncompatibility(targetGroup);
                    }

                    SinglePassStereoGUI(targetGroup, m_StereoRenderingPath);

                    TangoGUI(targetGroup);

                    VuforiaGUI(targetGroup);

                    RemotingWSAHolographicGUI(targetGroup);

                    Stereo360CaptureGUI(targetGroup);

                    ErrorOnARDeviceIncompatibility(targetGroup);

                    WarnOnGraphicsAPIIncompatibility(targetGroup);
                }

                InstallGUI(targetGroup);
            }
            m_Settings.EndSettingsBox();
        }