1
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
using System.Threading;
|
||||
|
||||
using System;
|
||||
namespace BITKit.Core.Entites
|
||||
{
|
||||
/// <summary>
|
||||
@@ -21,6 +21,7 @@ namespace BITKit.Core.Entites
|
||||
/// </summary>
|
||||
public interface IEntityComponent:IAwake,IStart
|
||||
{
|
||||
Type BaseType { get; }
|
||||
IEntity Entity { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
@@ -28,6 +29,14 @@ namespace BITKit.Core.Entites
|
||||
/// </summary>
|
||||
public interface IEntitiesService
|
||||
{
|
||||
/// <summary>
|
||||
/// 当添加Entity时
|
||||
/// </summary>
|
||||
public event Action<IEntity> OnAdd;
|
||||
/// <summary>
|
||||
/// 当移除Entity时
|
||||
/// </summary>
|
||||
public event Action<IEntity> OnRemove;
|
||||
/// <summary>
|
||||
/// 所有Entity
|
||||
/// </summary>
|
||||
@@ -45,11 +54,38 @@ namespace BITKit.Core.Entites
|
||||
/// <returns></returns>
|
||||
bool UnRegister(IEntity entity);
|
||||
CancellationToken CancellationToken { get; }
|
||||
|
||||
/// <summary>
|
||||
/// 通过Id获取Entity
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <returns></returns>
|
||||
IEntity Get(ulong id);
|
||||
/// <summary>
|
||||
/// 查询Entity,例如
|
||||
/// </summary>
|
||||
/// <para>var rotationEntities=EntitiesService.Query<RotationComponent></para>
|
||||
IEntity[] Query<T>() where T : IEntityComponent;
|
||||
/// <summary>
|
||||
/// 查询1个组件
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <returns></returns>
|
||||
T[] QueryComponents<T>() where T : IEntityComponent;
|
||||
/// <summary>
|
||||
/// 查询2个组件
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <typeparam name="T1"></typeparam>
|
||||
/// <returns></returns>
|
||||
ValueTuple<T,T1>[] QueryComponents<T,T1>()where T : IEntityComponent where T1 : IEntityComponent;
|
||||
/// <summary>
|
||||
/// 查询3个组件
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <typeparam name="T1"></typeparam>
|
||||
/// <typeparam name="T2"></typeparam>
|
||||
/// <returns></returns>
|
||||
ValueTuple<T,T1,T2>[] QueryComponents<T,T1,T2>() where T : IEntityComponent where T1 : IEntityComponent where T2 : IEntityComponent;
|
||||
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user