Files
2026-06-07 16:58:24 +01:00

76 lines
2.8 KiB
C#

using UnityEngine;
using UnityEditor;
using UnityEngine.UIElements;
using UnityEditor.UIElements;
using System.IO;
using JetBrains.Annotations;
namespace VRC.SDKBase.Editor
{
public static class VRCSDKSettingsProvider
{
public static readonly string customSettingsPath = "VRChat/SDK";
[SettingsProvider]
public static SettingsProvider CreateVRCSDKSettingsProvider()
{
var provider = new SettingsProvider(customSettingsPath, SettingsScope.Project)
{
label = "SDK",
// This method will draw the UI for the settings
activateHandler = (searchContext, rootElement) =>
{
var styleSheet = Resources.Load<StyleSheet>("VRCSDKSettingsStyle");
rootElement.styleSheets.Add(styleSheet);
var container = new VisualElement()
{
name = "container",
};
rootElement.Add(container);
var titleLabel = new Label("VRChat SDK Settings")
{
name = "title-label"
};
container.Add(titleLabel);
var androidAppNameField = new UnityEngine.UIElements.TextField("Android App Package Name")
{
value = VRCSettings.AndroidPackageName,
name = "android-app-package-name-field"
};
androidAppNameField.RegisterValueChangedCallback(evt =>
{
VRCSettings.AndroidPackageName = evt.newValue;
});
container.Add(androidAppNameField);
var questAppNameField = new UnityEngine.UIElements.TextField("Quest App Package Name")
{
value = VRCSettings.QuestPackageName,
name = "quest-app-package-name-field"
};
questAppNameField.RegisterValueChangedCallback(evt =>
{
VRCSettings.QuestPackageName = evt.newValue;
});
container.Add(questAppNameField);
},
// Populate the search keywords to enable smart search filtering and label highlighting
keywords = new[] { "vrchat", "sdk", "mobile", "android" }
};
return provider;
}
public static void OpenSettings()
{
// Open the Project Settings window with these settings selected
SettingsService.OpenProjectSettings(customSettingsPath);
}
}
}