DragonECS-Unity/src/EntityTemplate/EntityTemplatePreset.cs
2023-05-27 09:14:36 +08:00

30 lines
865 B
C#

using UnityEngine;
namespace DCFApixels.DragonECS
{
[CreateAssetMenu(fileName = "EntityTemplatePreset", menuName = EcsConsts.FRAMEWORK_NAME + "/EntityTemplatePreset", order = 1)]
public class EntityTemplatePreset : ScriptableObject, ITemplateInternal
{
[SerializeReference]
private ITemplateComponent[] _components;
string ITemplateInternal.ComponentsPropertyName => nameof(_components);
//ITemplateBrowsable[] ITemplateInternal.Components
//{
// get => _components;
// set => _components = value;
//}
public void Apply(EcsWorld world, int entityID)
{
foreach (var item in _components)
item.Add(world, entityID);
}
public void Clear()
{
_components = new ITemplateComponent[0];
}
}
}