mirror of
https://github.com/DCFApixels/DragonECS-Unity.git
synced 2025-09-18 01:54:35 +08:00
update templates
This commit is contained in:
parent
07cb628af7
commit
dfcdebab41
@ -60,9 +60,9 @@ namespace DCFApixels.DragonECS
|
||||
[SerializeField]
|
||||
private bool _deleteEntiityWithDestroy = false;
|
||||
[SerializeField]
|
||||
private ScriptableEntityTemplate[] _scriptableTemplates;
|
||||
private ScriptableEntityTemplateBase[] _scriptableTemplates;
|
||||
[SerializeField]
|
||||
private MonoEntityTemplate[] _monoTemplates;
|
||||
private MonoEntityTemplateBase[] _monoTemplates;
|
||||
|
||||
private bool _isConnectInvoked = false;
|
||||
|
||||
@ -82,11 +82,11 @@ namespace DCFApixels.DragonECS
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
get { return _entity.IsAlive; }
|
||||
}
|
||||
public IEnumerable<ScriptableEntityTemplate> ScriptableTemplates
|
||||
public IEnumerable<ScriptableEntityTemplateBase> ScriptableTemplates
|
||||
{
|
||||
get { return _scriptableTemplates; }
|
||||
}
|
||||
public IEnumerable<MonoEntityTemplate> MonoTemplates
|
||||
public IEnumerable<MonoEntityTemplateBase> MonoTemplates
|
||||
{
|
||||
get { return _monoTemplates; }
|
||||
}
|
||||
@ -198,7 +198,7 @@ namespace DCFApixels.DragonECS
|
||||
|
||||
private static void Autoset(EcsEntityConnect target)
|
||||
{
|
||||
IEnumerable<MonoEntityTemplate> result;
|
||||
IEnumerable<MonoEntityTemplateBase> result;
|
||||
if (target.MonoTemplates != null && target.MonoTemplates.Count() > 0)
|
||||
{
|
||||
result = target.MonoTemplates.Where(o => o != null).Union(GetTemplatesFor(target.transform));
|
||||
@ -211,15 +211,15 @@ namespace DCFApixels.DragonECS
|
||||
target._monoTemplates = result.ToArray();
|
||||
EditorUtility.SetDirty(target);
|
||||
}
|
||||
private static IEnumerable<MonoEntityTemplate> GetTemplatesFor(Transform parent)
|
||||
private static IEnumerable<MonoEntityTemplateBase> GetTemplatesFor(Transform parent)
|
||||
{
|
||||
IEnumerable<MonoEntityTemplate> result = parent.GetComponents<MonoEntityTemplate>();
|
||||
IEnumerable<MonoEntityTemplateBase> result = parent.GetComponents<MonoEntityTemplateBase>();
|
||||
for (int i = 0; i < parent.childCount; i++)
|
||||
{
|
||||
var child = parent.GetChild(i);
|
||||
if (child.TryGetComponent<EcsEntityConnect>(out _))
|
||||
{
|
||||
return Enumerable.Empty<MonoEntityTemplate>();
|
||||
return Enumerable.Empty<MonoEntityTemplateBase>();
|
||||
}
|
||||
result = result.Concat(GetTemplatesFor(child));
|
||||
}
|
||||
|
@ -4,9 +4,14 @@ using UnityEngine;
|
||||
|
||||
namespace DCFApixels.DragonECS
|
||||
{
|
||||
public abstract class MonoEntityTemplateBase : MonoBehaviour, ITemplate
|
||||
{
|
||||
public abstract void Apply(short worldID, int entityID);
|
||||
}
|
||||
|
||||
[DisallowMultipleComponent]
|
||||
[AddComponentMenu(EcsConsts.FRAMEWORK_NAME + "/" + nameof(MonoEntityTemplate), 30)]
|
||||
public class MonoEntityTemplate : MonoBehaviour, ITemplateInternal
|
||||
public class MonoEntityTemplate : MonoEntityTemplateBase, ITemplateInternal
|
||||
{
|
||||
[SerializeReference]
|
||||
private IComponentTemplate[] _components;
|
||||
@ -25,7 +30,7 @@ namespace DCFApixels.DragonECS
|
||||
#endregion
|
||||
|
||||
#region Methods
|
||||
public void Apply(short worldID, int entityID)
|
||||
public override void Apply(short worldID, int entityID)
|
||||
{
|
||||
foreach (var item in _components)
|
||||
{
|
||||
|
@ -4,8 +4,13 @@ using UnityEngine;
|
||||
|
||||
namespace DCFApixels.DragonECS
|
||||
{
|
||||
public abstract class ScriptableEntityTemplateBase : ScriptableObject, ITemplate
|
||||
{
|
||||
public abstract void Apply(short worldID, int entityID);
|
||||
}
|
||||
|
||||
[CreateAssetMenu(fileName = nameof(ScriptableEntityTemplate), menuName = EcsConsts.FRAMEWORK_NAME + "/" + nameof(ScriptableEntityTemplate), order = 1)]
|
||||
public class ScriptableEntityTemplate : ScriptableObject, ITemplateInternal
|
||||
public class ScriptableEntityTemplate : ScriptableEntityTemplateBase, ITemplateInternal
|
||||
{
|
||||
[SerializeReference]
|
||||
private IComponentTemplate[] _components;
|
||||
@ -24,7 +29,7 @@ namespace DCFApixels.DragonECS
|
||||
#endregion
|
||||
|
||||
#region Methods
|
||||
public void Apply(short worldID, int entityID)
|
||||
public override void Apply(short worldID, int entityID)
|
||||
{
|
||||
foreach (var item in _components)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user