using UnityEngine; using UnityEditor; namespace Unity.VisualScripting { internal class EditorPreferencesProviderView : SettingsProvider { private const string Path = "Preferences/Visual Scripting"; private const string Title = "Visual Scripting"; private const string ID = "Bolt"; private readonly GUIStyle marginStyle = new GUIStyle() { margin = new RectOffset(10, 10, 10, 10) }; public EditorPreferencesProviderView() : base(Path, SettingsScope.User) { label = Title; } private void EnsureConfig() { if (BoltCore.instance == null || BoltCore.Configuration == null) { PluginContainer.Initialize(); } } public override void OnGUI(string searchContext) { EnsureConfig(); GUILayout.BeginVertical(marginStyle); // happens when opening unity with the settings window already opened. there's a delay until the singleton is assigned if (BoltCore.instance == null) { EditorGUILayout.HelpBox("Loading Configuration...", MessageType.Info); return; } var instance = (BoltProduct)ProductContainer.GetProduct(ID); instance.configurationPanel.PreferenceItem(); GUILayout.EndVertical(); } } }