BITFALL/Assets/BITKit/UnityEditor/AssetCacheScriptableObject.cs

40 lines
891 B
C#
Raw Normal View History

2023-10-24 23:37:59 +08:00
using System.Collections;
using System.Collections.Generic;
2023-11-15 23:54:54 +08:00
#if UNITY_EDITOR
2023-10-24 23:37:59 +08:00
using UnityEditor;
using UnityEditor.UIElements;
2023-11-15 23:54:54 +08:00
#endif
2023-10-24 23:37:59 +08:00
using UnityEngine;
using UnityEngine.UIElements;
namespace BITKit
{
public class AssetCacheScriptableObject : ScriptableObject
{
[SerializeField] private bool isEditable;
[SerializeField] private Object[] _assets;
public bool IsEditable => isEditable;
public Object[] Assets => _assets;
}
#if UNITY_EDITOR
[CustomEditor(typeof(AssetCacheScriptableObject))]
public class AssetCacheScriptableObjectEditor : BITInspector<AssetCacheScriptableObject>
{
public override VisualElement CreateInspectorGUI()
{
if (agent.IsEditable)
{
return base.CreateInspectorGUI();
}
foreach (var x in agent.Assets)
{
var field = root.Create<PropertyField>();
field.Bind(new SerializedObject(x));
}
return root;
}
}
#endif
}