Files
plugin-library/Assets/00.StaryEvo/Editor/Create/CreatScriptableObject/CreatScriptableObject.cs

51 lines
1.8 KiB
C#
Raw Normal View History

2025-03-31 11:16:52 +08:00
/****************************************************
CreatScriptableObject.cs
834207172@qq.com
2022/3/7 18:26:10
*****************************************************/
using System;
using System.Collections.Generic;
using System.Linq;
using Sirenix.OdinInspector.Editor;
using Sirenix.Utilities;
using UnityEditor;
using UnityEngine;
namespace Stary.Evo.Editor
{
public class CreatScriptableObject : OdinMenuEditorWindow
{
[MenuItem("Evo/Utility/ScriptObject/查找", false, 3)]
//[MenuItem("Assets/Create Scriptable Object", priority = -1000)]
private static void ShowDialog()
{
GetWindow<CreatScriptableObject>().Show();
}
/// <summary>
/// 获取继承 ScriptableObject 且不是Editor相关的所有自定义类也就是自己编写的类
/// </summary>
// static HashSet<Type> scriptableObjectTypes = AssemblyUtilities.GetTypes(AssemblyTypeFlags.CustomTypes)
// .Where(t =>
// t.IsClass &&
// typeof(ScriptableObject).IsAssignableFrom(t) &&
// !typeof(EditorWindow).IsAssignableFrom(t) &&
// !typeof(Editor).IsAssignableFrom(t) && t.GetCustomAttribute<ScriptableObjectEditorAttribute>() != null)
// .ToHashSet();
protected override OdinMenuTree BuildMenuTree()
{
OdinMenuTree tree = new OdinMenuTree(false); //不支持多选
tree.Selection.SupportsMultiSelect = false;
tree.AddAllAssetsAtPath("预览ScriptableObject", "Assets/Domain", typeof(ScriptableObject), true, true);
// tree.AddAllAssetsAtPath("预览ScriptableObject", "Assets/~Resources", typeof(ScriptableObject), true, true);
return tree;
}
}
}