Entity 类
Entity的抽象类,任何Entity必须继承这个接口才可以使用
继承
继承成员
命名空间: Fantasy.Entitas
程序集: Fantasy.Net.dll
语法
public abstract class Entity : IEntity, IDisposable, IPool
  属性
| 编辑本文 查看源代码ForEachEntity
查找当前实体下的所有实体,不包括实现ISupportedMultiEntity接口的实体
声明
[BsonIgnore]
[JsonIgnore]
[IgnoreDataMember]
[ProtoIgnore]
public IEnumerable<Entity> ForEachEntity { get; }
  属性值
| 类型 | 描述 | 
|---|---|
| IEnumerable<Entity> | 
ForEachMultiEntity
查询当前实体下的实现了ISupportedMultiEntity接口的实体
声明
[BsonIgnore]
[JsonIgnore]
[IgnoreDataMember]
[ProtoIgnore]
public IEnumerable<Entity> ForEachMultiEntity { get; }
  属性值
| 类型 | 描述 | 
|---|---|
| IEnumerable<Entity> | 
ForEachSingleCollection
查询当前实体下支持数据库分表存储实体
声明
[BsonIgnore]
[JsonIgnore]
[IgnoreDataMember]
[ProtoIgnore]
public IEnumerable<Entity> ForEachSingleCollection { get; }
  属性值
| 类型 | 描述 | 
|---|---|
| IEnumerable<Entity> | 
ForEachTransfer
查询当前实体下支持传送实体
声明
[BsonIgnore]
[JsonIgnore]
[IgnoreDataMember]
[ProtoIgnore]
public IEnumerable<Entity> ForEachTransfer { get; }
  属性值
| 类型 | 描述 | 
|---|---|
| IEnumerable<Entity> | 
Id
实体的Id
声明
[BsonId]
[BsonElement]
[BsonIgnoreIfDefault]
[BsonDefaultValue(0)]
public long Id { get; protected set; }
  属性值
| 类型 | 描述 | 
|---|---|
| long | 
IsDisposed
当前实体是否已经被销毁
声明
[BsonIgnore]
[JsonIgnore]
[IgnoreDataMember]
[ProtoIgnore]
public bool IsDisposed { get; }
  属性值
| 类型 | 描述 | 
|---|---|
| bool | 
Parent
实体的父实体
声明
[BsonIgnore]
[JsonIgnore]
[IgnoreDataMember]
[ProtoIgnore]
public Entity Parent { get; protected set; }
  属性值
| 类型 | 描述 | 
|---|---|
| Entity | 
RunTimeId
实体的RunTimeId,其他系统可以通过这个Id发送Route消息,这个Id也可以理解为RouteId
声明
[BsonIgnore]
[IgnoreDataMember]
[ProtoIgnore]
public long RunTimeId { get; protected set; }
  属性值
| 类型 | 描述 | 
|---|---|
| long | 
Scene
当前实体所归属的Scene
声明
[BsonIgnore]
[JsonIgnore]
[IgnoreDataMember]
[ProtoIgnore]
public Scene Scene { get; protected set; }
  属性值
| 类型 | 描述 | 
|---|---|
| Scene | 
Type
实体的真实Type
声明
[BsonIgnore]
[JsonIgnore]
[IgnoreDataMember]
[ProtoIgnore]
public Type Type { get; protected set; }
  属性值
| 类型 | 描述 | 
|---|---|
| Type | 
方法
| 编辑本文 查看源代码AddComponent(Entity)
添加一个组件到当前实体上
声明
public void AddComponent(Entity component)
  参数
| 类型 | 名称 | 描述 | 
|---|---|---|
| Entity | component | 要添加的实体实例  | 
      
AddComponent<T>(bool)
添加一个组件到当前实体上
声明
public T AddComponent<T>(bool isPool = true) where T : Entity, new()
  参数
| 类型 | 名称 | 描述 | 
|---|---|---|
| bool | isPool | 是否从对象池里创建  | 
      
返回
| 类型 | 描述 | 
|---|---|
| T | 返回添加到实体上组件的实例  | 
      
类型参数
| 名称 | 描述 | 
|---|---|
| T | 要添加组件的泛型类型  | 
      
AddComponent<T>(long, bool)
添加一个组件到当前实体上
声明
public T AddComponent<T>(long id, bool isPool = true) where T : Entity, new()
  参数
| 类型 | 名称 | 描述 | 
|---|---|---|
| long | id | 要添加组件的Id  | 
      
| bool | isPool | 是否从对象池里创建  | 
      
返回
| 类型 | 描述 | 
|---|---|
| T | 返回添加到实体上组件的实例  | 
      
类型参数
| 名称 | 描述 | 
|---|---|
| T | 要添加组件的泛型类型  | 
      
AddComponent<T>(T)
添加一个组件到当前实体上
声明
public void AddComponent<T>(T component) where T : Entity
  参数
| 类型 | 名称 | 描述 | 
|---|---|---|
| T | component | 要添加的实体实例  | 
      
类型参数
| 名称 | 描述 | 
|---|---|
| T | 要添加组件的泛型类型  | 
      
Create<T>(Scene, bool, bool)
创建一个实体
声明
public static T Create<T>(Scene scene, bool isPool, bool isRunEvent) where T : Entity, new()
  参数
| 类型 | 名称 | 描述 | 
|---|---|---|
| Scene | scene | 所属的Scene  | 
      
| bool | isPool | 是否从对象池创建,如果选择的是,销毁的时候同样会进入对象池  | 
      
| bool | isRunEvent | 是否执行实体事件  | 
      
返回
| 类型 | 描述 | 
|---|---|
| T | 
类型参数
| 名称 | 描述 | 
|---|---|
| T | 要创建的实体泛型类型  | 
      
Create<T>(Scene, long, bool, bool)
创建一个实体
声明
public static T Create<T>(Scene scene, long id, bool isPool, bool isRunEvent) where T : Entity, new()
  参数
| 类型 | 名称 | 描述 | 
|---|---|---|
| Scene | scene | 所属的Scene  | 
      
| long | id | 指定实体的Id  | 
      
| bool | isPool | 是否从对象池创建,如果选择的是,销毁的时候同样会进入对象池  | 
      
| bool | isRunEvent | 是否执行实体事件  | 
      
返回
| 类型 | 描述 | 
|---|---|
| T | 
类型参数
| 名称 | 描述 | 
|---|---|
| T | 要创建的实体泛型类型  | 
      
Deserialize(Scene, bool)
反序列化当前实体,因为在数据库加载过来的或通过协议传送过来的实体并没有跟当前Scene做关联。 所以必须要执行一下这个反序列化的方法才可以使用。
声明
public void Deserialize(Scene scene, bool resetId = false)
  参数
| 类型 | 名称 | 描述 | 
|---|---|---|
| Scene | scene | Scene  | 
      
| bool | resetId | 是否是重新生成实体的Id,如果是数据库加载过来的一般是不需要的  | 
      
Dispose()
销毁当前实体,销毁后会自动销毁当前实体下的所有实体。
声明
public virtual void Dispose()
  GetComponent(Type)
当前实体上查找一个字实体
声明
public Entity GetComponent(Type type)
  参数
| 类型 | 名称 | 描述 | 
|---|---|---|
| Type | type | 要查找实体类型  | 
      
返回
| 类型 | 描述 | 
|---|---|
| Entity | 查找的实体实例  | 
      
GetComponent<T>()
当前实体上查找一个字实体
声明
public T GetComponent<T>() where T : Entity, new()
  返回
| 类型 | 描述 | 
|---|---|
| T | 查找的实体实例  | 
      
类型参数
| 名称 | 描述 | 
|---|---|
| T | 要查找实体泛型类型  | 
      
GetComponent<T>(long)
当前实体上查找一个字实体
声明
public T GetComponent<T>(long id) where T : Entity, ISupportedMultiEntity, new()
  参数
| 类型 | 名称 | 描述 | 
|---|---|---|
| long | id | 要查找实体的Id  | 
      
返回
| 类型 | 描述 | 
|---|---|
| T | 查找的实体实例  | 
      
类型参数
| 名称 | 描述 | 
|---|---|
| T | 要查找实体泛型类型  | 
      
GetOrAddComponent<T>(bool)
当前实体上查找一个字实体,如果没有就创建一个新的并添加到当前实体上
声明
public T GetOrAddComponent<T>(bool isPool = true) where T : Entity, new()
  参数
| 类型 | 名称 | 描述 | 
|---|---|---|
| bool | isPool | 是否从对象池创建  | 
      
返回
| 类型 | 描述 | 
|---|---|
| T | 查找的实体实例  | 
      
类型参数
| 名称 | 描述 | 
|---|---|
| T | 要查找或添加实体泛型类型  | 
      
GetParent<T>()
获得父Entity
声明
public T GetParent<T>() where T : Entity, new()
  返回
| 类型 | 描述 | 
|---|---|
| T | 
类型参数
| 名称 | 描述 | 
|---|---|
| T | 父实体的泛型类型  | 
      
IsPool()
获取一个值,该值指示当前实例是否为对象池中的实例。
声明
public bool IsPool()
  返回
| 类型 | 描述 | 
|---|---|
| bool | 
RemoveComponent(Entity, bool)
当前实体下删除一个实体
声明
public void RemoveComponent(Entity component, bool isDispose = true)
  参数
| 类型 | 名称 | 描述 | 
|---|---|---|
| Entity | component | 要删除的实体实例  | 
      
| bool | isDispose | 是否执行删除实体的Dispose方法  | 
      
RemoveComponent<T>(bool)
当前实体下删除一个实体
声明
public void RemoveComponent<T>(bool isDispose = true) where T : Entity, new()
  参数
| 类型 | 名称 | 描述 | 
|---|---|---|
| bool | isDispose | 是否执行删除实体的Dispose方法  | 
      
类型参数
| 名称 | 描述 | 
|---|---|
| T | 实体的泛型类型  | 
      
异常
| 类型 | 条件 | 
|---|---|
| NotSupportedException | 
RemoveComponent<T>(long, bool)
当前实体下删除一个实体
声明
public void RemoveComponent<T>(long id, bool isDispose = true) where T : Entity, ISupportedMultiEntity, new()
  参数
| 类型 | 名称 | 描述 | 
|---|---|---|
| long | id | 要删除的实体Id  | 
      
| bool | isDispose | 是否执行删除实体的Dispose方法  | 
      
类型参数
| 名称 | 描述 | 
|---|---|
| T | 实体的泛型类型  | 
      
RemoveComponent<T>(T, bool)
当前实体下删除一个实体
声明
public void RemoveComponent<T>(T component, bool isDispose = true) where T : Entity
  参数
| 类型 | 名称 | 描述 | 
|---|---|---|
| T | component | 要删除的实体实例  | 
      
| bool | isDispose | 是否执行删除实体的Dispose方法  | 
      
类型参数
| 名称 | 描述 | 
|---|---|
| T | 实体的泛型类型  | 
      
SetIsPool(bool)
设置一个值,该值指示当前实例是否为对象池中的实例。
声明
public void SetIsPool(bool isPool)
  参数
| 类型 | 名称 | 描述 | 
|---|---|---|
| bool | isPool |