99 lines
3.8 KiB
C#
99 lines
3.8 KiB
C#
using AlicizaX.Editor;
|
|
using AlicizaX.Resource.Runtime;
|
|
using UnityEditor;
|
|
using UnityEngine;
|
|
|
|
namespace AlicizaX.Resource.Editor
|
|
{
|
|
[CustomEditor(typeof(ResourceComponent))]
|
|
internal sealed class ResourceComponentInspector : ComponentTypeComponentInspector
|
|
{
|
|
private SerializedProperty m_GamePlayMode;
|
|
private GUIContent m_GamePlayModeGUIContent = new GUIContent("资源运行模式");
|
|
|
|
|
|
private SerializedProperty m_Milliseconds;
|
|
private SerializedProperty m_defaultPackageName;
|
|
private SerializedProperty m_AssetAutoReleaseInterval;
|
|
private SerializedProperty m_AssetCapacity;
|
|
private SerializedProperty m_AssetExpireTime;
|
|
private SerializedProperty m_AssetPriority;
|
|
|
|
|
|
public override void OnInspectorGUI()
|
|
{
|
|
base.OnInspectorGUI();
|
|
serializedObject.Update();
|
|
|
|
EditorGUI.BeginDisabledGroup(EditorApplication.isPlayingOrWillChangePlaymode);
|
|
{
|
|
EditorGUILayout.PropertyField(m_GamePlayMode, m_GamePlayModeGUIContent);
|
|
|
|
|
|
long milliseconds = (long)EditorGUILayout.Slider("每帧执行消耗的最大时间切片(ms)", m_Milliseconds.longValue, 30, 100000);
|
|
if (milliseconds != m_Milliseconds.longValue)
|
|
{
|
|
m_Milliseconds.longValue = milliseconds;
|
|
}
|
|
|
|
string packageName = EditorGUILayout.TextField("Package Name", m_defaultPackageName.stringValue);
|
|
if (packageName != m_defaultPackageName.stringValue)
|
|
{
|
|
m_defaultPackageName.stringValue = packageName;
|
|
}
|
|
|
|
|
|
float assetAutoReleaseInterval = EditorGUILayout.Slider("对象池自动释放间隔(s)", m_AssetAutoReleaseInterval.floatValue, 60, 3600);
|
|
if (assetAutoReleaseInterval != m_AssetAutoReleaseInterval.floatValue)
|
|
{
|
|
m_AssetAutoReleaseInterval.floatValue = assetAutoReleaseInterval;
|
|
}
|
|
|
|
int assetCapacity = EditorGUILayout.IntSlider("对象池容量", m_AssetCapacity.intValue, 32, 1024);
|
|
if (assetCapacity != m_AssetCapacity.intValue)
|
|
{
|
|
m_AssetCapacity.intValue = assetCapacity;
|
|
}
|
|
|
|
|
|
float assetExpireTime = EditorGUILayout.Slider("对象池过期秒数", m_AssetExpireTime.floatValue, 60, 1024);
|
|
if (assetExpireTime != m_AssetExpireTime.floatValue)
|
|
{
|
|
m_AssetExpireTime.floatValue = assetExpireTime;
|
|
}
|
|
|
|
|
|
int assetPriority = EditorGUILayout.IntSlider("对象池优先级", m_AssetPriority.intValue, 0, 10);
|
|
if (assetPriority != m_AssetPriority.intValue)
|
|
{
|
|
m_AssetPriority.intValue = assetPriority;
|
|
}
|
|
}
|
|
EditorGUI.EndDisabledGroup();
|
|
|
|
serializedObject.ApplyModifiedProperties();
|
|
|
|
|
|
Repaint();
|
|
}
|
|
|
|
|
|
protected override void RefreshTypeNames()
|
|
{
|
|
RefreshComponentTypeNames(typeof(IResourceManager));
|
|
}
|
|
|
|
protected override void Enable()
|
|
{
|
|
m_GamePlayMode = serializedObject.FindProperty("m_GamePlayMode");
|
|
|
|
m_Milliseconds = serializedObject.FindProperty("m_Milliseconds");
|
|
m_defaultPackageName = serializedObject.FindProperty("m_defaultPackageName");
|
|
m_AssetAutoReleaseInterval = serializedObject.FindProperty("m_AssetAutoReleaseInterval");
|
|
m_AssetCapacity = serializedObject.FindProperty("m_AssetCapacity");
|
|
m_AssetExpireTime = serializedObject.FindProperty("m_AssetExpireTime");
|
|
m_AssetPriority = serializedObject.FindProperty("m_AssetPriority");
|
|
}
|
|
}
|
|
}
|