2024-03-10 04:56:29 +08:00
|
|
|
|
#if UNITY_EDITOR
|
|
|
|
|
using DCFApixels.DragonECS.Unity.Internal;
|
|
|
|
|
using UnityEditor;
|
2024-05-13 19:27:53 +08:00
|
|
|
|
using UnityEngine;
|
2024-03-10 04:56:29 +08:00
|
|
|
|
|
|
|
|
|
namespace DCFApixels.DragonECS.Unity.Editors
|
|
|
|
|
{
|
|
|
|
|
[CustomEditor(typeof(EntityMonitor))]
|
|
|
|
|
internal class EntityMonitorEditor : Editor
|
|
|
|
|
{
|
|
|
|
|
private EntityMonitor Target => (EntityMonitor)target;
|
|
|
|
|
|
|
|
|
|
public override void OnInspectorGUI()
|
|
|
|
|
{
|
2024-03-28 23:24:39 +08:00
|
|
|
|
bool isAlive = Target.Entity.TryUnpackForUnityEditor(out int id, out short gen, out short worldID, out EcsWorld world);
|
2024-05-13 19:27:53 +08:00
|
|
|
|
using (new EditorGUI.DisabledScope(!isAlive))
|
|
|
|
|
{
|
|
|
|
|
if (GUILayout.Button("Delete Entity"))
|
|
|
|
|
{
|
|
|
|
|
world.DelEntity(id);
|
|
|
|
|
}
|
|
|
|
|
}
|
2024-05-13 19:20:07 +08:00
|
|
|
|
EcsGUI.Layout.EntityBarForAlive(isAlive ? EcsGUI.EntityStatus.Alive : EcsGUI.EntityStatus.NotAlive, id, gen, worldID);
|
2024-03-10 04:56:29 +08:00
|
|
|
|
EcsGUI.Layout.DrawRuntimeComponents(Target.Entity, false);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
#endif
|