This repository has been archived on 2025-04-28. You can view files and clone it, but cannot push or open issues or pull requests.
ARPlusSystem/ARPlusSystem-250418/Library/PackageCache/com.unity.xr.arfoundation@4.../Editor/ARSessionEditor.cs

58 lines
2.2 KiB
C#

using UnityEngine;
using UnityEngine.XR.ARFoundation;
namespace UnityEditor.XR.ARFoundation
{
[CustomEditor(typeof(ARSession))]
class ARSessionEditor : Editor
{
SerializedProperty m_AttemptUpdate;
SerializedProperty m_MatchFrameRate;
SerializedProperty m_TrackingMode;
static class Tooltips
{
public static readonly GUIContent attemptUpdate = new GUIContent(
"Attempt Update",
"If enabled, the session will attempt to update a supported device if its AR software is out of date.");
public static readonly GUIContent matchFrameRate = new GUIContent(
"Match Frame Rate",
"If enabled, the Unity frame will be synchronized with the AR session. Otherwise, the AR session will be updated independently of the Unity frame.");
public static readonly GUIContent trackingMode = new GUIContent(
"Tracking Mode",
"The requested tracking mode.");
}
public override void OnInspectorGUI()
{
serializedObject.Update();
EditorGUILayout.PropertyField(m_AttemptUpdate, Tooltips.attemptUpdate);
EditorGUILayout.PropertyField(m_MatchFrameRate, Tooltips.matchFrameRate);
if (m_MatchFrameRate.boolValue)
{
EditorGUILayout.HelpBox("'Match Frame Rate' does three things:\n" +
"- Blocks each render frame until the next AR frame is ready\n" +
"- Sets the target frame rate to the session's preferred update rate\n" +
"- Disables VSync\n" +
"These settings are not reverted when the ARSession is disabled.",
MessageType.Info);
}
EditorGUILayout.PropertyField(m_TrackingMode, Tooltips.trackingMode);
serializedObject.ApplyModifiedProperties();
}
void OnEnable()
{
m_AttemptUpdate = serializedObject.FindProperty("m_AttemptUpdate");
m_MatchFrameRate = serializedObject.FindProperty("m_MatchFrameRate");
m_TrackingMode = serializedObject.FindProperty("m_TrackingMode");
}
}
}