Added initial version 0.1.0
This commit is contained in:
parent
6aa4cb8596
commit
416759c213
64 changed files with 2181 additions and 0 deletions
51
Editor/Settings/ProjectValidatorSettings.cs
Normal file
51
Editor/Settings/ProjectValidatorSettings.cs
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UIElements;
|
||||
using UnityEditor.UIElements;
|
||||
using UnityEditorInternal;
|
||||
|
||||
namespace Module.ProjectValidator.Editor
|
||||
{
|
||||
internal sealed class ProjectValidatorSettings : ScriptableObject
|
||||
{
|
||||
public List<string> assemblies = new();
|
||||
|
||||
private const string AssetPath = "ProjectSettings/ProjectValidatorSettings.asset";
|
||||
private const string StyleSheetName = "StyleSheetProjectValidatorSettings";
|
||||
|
||||
internal static ProjectValidatorSettings GetOrCreate()
|
||||
{
|
||||
var objects = InternalEditorUtility.LoadSerializedFileAndForget(AssetPath);
|
||||
|
||||
if (objects.Length != 0)
|
||||
return (ProjectValidatorSettings)objects[0];
|
||||
|
||||
var settings = CreateInstance<ProjectValidatorSettings>();
|
||||
InternalEditorUtility.SaveToSerializedFileAndForget(new Object[] { settings }, AssetPath, true);
|
||||
return settings;
|
||||
}
|
||||
|
||||
[SettingsProvider]
|
||||
public static SettingsProvider CreateProvider()
|
||||
{
|
||||
return new SettingsProvider("Project/Project Validator", SettingsScope.Project)
|
||||
{
|
||||
label = "Project Validator",
|
||||
activateHandler = (_, root) =>
|
||||
{
|
||||
var settings = GetOrCreate();
|
||||
var serializedObject = new SerializedObject(settings);
|
||||
var container = new VisualElement { style = { flexDirection = FlexDirection.Column } };
|
||||
var propertyField = new PropertyField(serializedObject.FindProperty("assemblies"), "Assemblies");
|
||||
propertyField.RegisterCallback<ChangeEvent<string>>(_ => InternalEditorUtility.SaveToSerializedFileAndForget(new[] { serializedObject.targetObject }, AssetPath, true));
|
||||
container.Add(propertyField);
|
||||
root.Add(container);
|
||||
root.Bind(serializedObject);
|
||||
root.styleSheets.Add(EditorAssetUtility.LoadFirstAsset<StyleSheet>(StyleSheetName));
|
||||
},
|
||||
keywords = new HashSet<string>(new[] { "Project", "Validator", "Assemblies" })
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
3
Editor/Settings/ProjectValidatorSettings.cs.meta
Normal file
3
Editor/Settings/ProjectValidatorSettings.cs.meta
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
fileFormatVersion: 2
|
||||
guid: b4d5e3885de14b9d9b5ce4da91e71296
|
||||
timeCreated: 1779037944
|
||||
Loading…
Add table
Add a link
Reference in a new issue