BITFALL/Assets/BITKit/UnityEditor/AssetCacheDefaultWindow.cs

67 lines
1.6 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using UnityEditor.UIElements;
using UnityEngine;
using UnityEngine.UIElements;
namespace BITKit.GameEditor
{
public class AssetCacheDefaultWindow : EditorWindow
{
[MenuItem("Tools/AssetCache/DefaultWindow")]
public static void Open()
{
var window = GetWindow<AssetCacheDefaultWindow>();
window.Show();
}
private void OnEnable()
{
Rebuild();
}
private void Rebuild()
{
var obj =AssetDatabase.LoadAssetAtPath<AssetCacheScriptableObject>("Assets/Artists/Configs/Asset Cache.asset");
if (obj is null)
{
rootVisualElement.Create<Label>().text = "未配置默认的Asset Cache";
var button = rootVisualElement.Create<Button>();
button.text = "重新载入";
//button.clicked += Rebuild;
return;
}
rootVisualElement.Bind(new SerializedObject(obj));
//BITInspectorExtensions.FillDefaultInspector(rootVisualElement,new SerializedObject(obj),true);
var toggle = rootVisualElement.Create<Toggle>();
toggle.bindingPath = "isEditable";
toggle.label = "Edit";
// toggle.RegisterValueChangedCallback(_ =>
// {
// Rebuild();
// });
var scroll = rootVisualElement.Create<ScrollView>();
if (obj.IsEditable)
{
BITInspectorExtensions.FillDefaultInspector(rootVisualElement,new SerializedObject(obj),true);
}
else
{
foreach (var x in obj.Assets)
{
var field = scroll.Create<ObjectField>();
//field.label = x.name;
field.style.opacity = 1;
field.value = x;
field.SetEnabled(false);
}
}
}
}
}