zxl
/
CTT
forked from Cal/CTT
1
0
Fork 0
CTT/Unity/Assets/Editor/CalEditor/ToolEditor.cs

79 lines
2.7 KiB
C#
Raw Normal View History

2021-04-08 20:09:59 +08:00
using Sirenix.OdinInspector.Editor;
using Sirenix.Utilities;
using Sirenix.Utilities.Editor;
using System;
using System.Collections;
using System.Collections.Generic;
2021-06-07 13:58:51 +08:00
using System.IO;
using System.Linq;
2021-04-08 20:09:59 +08:00
using System.Security.Cryptography;
2021-06-07 13:58:51 +08:00
using ET;
2021-04-08 20:09:59 +08:00
using UnityEditor;
using UnityEngine;
namespace ETEditor
{
public enum ToolKey
{
AB,
,
,
}
public class ToolEditor : OdinMenuEditorWindow
{
public readonly static Dictionary<ToolKey, string> toolDic = new Dictionary<ToolKey, string>(){
{ToolKey.AB,"Assets/Model/Cal/CalAssets/BulildAB.asset"},
{ToolKey. ,"Assets/Model/Cal/CalAssets/ResTool.asset"},
2021-06-07 13:58:51 +08:00
{ToolKey.,"Assets/XNodeDemo/Skill/Skill And Modifier S Object.asset"},
2021-04-08 20:09:59 +08:00
};
[MenuItem("Tool Singlton/Tools Window #o"),]
private static void OpenEditor()
{
2021-04-11 19:50:39 +08:00
ToolEditor window = GetWindow<ToolEditor>();
2021-04-08 20:09:59 +08:00
window.position = GUIHelper.GetEditorWindowRect().AlignCenter(800, 700);
}
protected override OdinMenuTree BuildMenuTree()
{
2021-04-11 19:50:39 +08:00
OdinMenuTree tree = new OdinMenuTree(true);
2021-04-08 20:09:59 +08:00
foreach (var kp in toolDic)
{
tree.AddAssetAtPath(kp.Key.ToString(), kp.Value.Substring(kp.Value.IndexOf("Assets/")+7)).AddIcon(EditorIcons.Airplane);
}
2021-06-07 13:58:51 +08:00
//
// {ToolKey.技能编辑器,"Assets/XNodeDemo/Skill/Skill And Modifier S Object.asset"},
// var enumerable=tree.AddAllAssetsAtPath("技能列表", "XNodeDemo/Assets/Skill", typeof(SkillNodeGraph));
// foreach (var odinMenuItem in enumerable)
// {
// if (odinMenuItem.Value == null)
// {
// continue;
// }
//
// odinMenuItem.Name = odinMenuItem.Value.As<SkillNodeGraph>().Root.skillLogic.skillName;
// }
2021-04-08 20:09:59 +08:00
2021-06-07 13:58:51 +08:00
var list = new List<OdinMenuItem>();
DirectoryInfo directoryInfo = new DirectoryInfo("Assets/XNodeDemo/Assets/Skill");
foreach (var fileInfo in directoryInfo.GetFiles("*.asset"))
{
SkillNodeGraph skillNodeGraph =
AssetDatabase.LoadAssetAtPath<SkillNodeGraph>(Utility.Path.DataPathToAssetPath(fileInfo.FullName));
var odinItem = new OdinMenuItem(tree,$"{skillNodeGraph.Root.skillLogic.skillName}_{skillNodeGraph.Id}",skillNodeGraph);
list.Add(odinItem);
}
foreach (var odinMenuItem in list){
tree.AddMenuItemAtPath("技能列表",odinMenuItem);
}
2021-04-08 20:09:59 +08:00
return tree;
}
}
}