ECS Framework API / Entity
Class: Entity
Defined in: ECS/Entity.ts:58
游戏实体类
ECS架构中的实体(Entity),作为组件的容器。 实体本身不包含游戏逻辑,所有功能都通过组件来实现。 支持父子关系,可以构建实体层次结构。
Example
// 创建实体
const entity = new Entity("Player", 1);
// 添加组件
const healthComponent = entity.addComponent(new HealthComponent(100));
// 获取组件
const health = entity.getComponent(HealthComponent);
// 添加位置组件
entity.addComponent(new PositionComponent(100, 200));
// 添加子实体
const weapon = new Entity("Weapon", 2);
entity.addChild(weapon);
Constructors
Constructor
new Entity(
name
,id
):Entity
Defined in: ECS/Entity.ts:169
构造函数
Parameters
name
string
实体名称
id
number
实体唯一标识符
Returns
Entity
Properties
entityComparer
static
entityComparer:EntityComparer
Defined in: ECS/Entity.ts:67
实体比较器实例
eventBus
static
eventBus:null
|EventBus
=null
Defined in: ECS/Entity.ts:73
全局事件总线实例 用于发射组件相关事件
name
name:
string
Defined in: ECS/Entity.ts:91
实体名称
id
readonly
id:number
Defined in: ECS/Entity.ts:96
实体唯一标识符
components
readonly
components:Component
[] =[]
Defined in: ECS/Entity.ts:101
组件集合
scene
scene:
null
|IScene
=null
Defined in: ECS/Entity.ts:106
所属场景引用
updateInterval
updateInterval:
number
=1
Defined in: ECS/Entity.ts:111
更新间隔
_isDestroyed
_isDestroyed:
boolean
=false
Defined in: ECS/Entity.ts:116
销毁状态标志
Accessors
isDestroyed
Get Signature
get isDestroyed():
boolean
Defined in: ECS/Entity.ts:178
获取销毁状态
Returns
boolean
如果实体已被销毁则返回true
parent
Get Signature
get parent():
null
|Entity
Defined in: ECS/Entity.ts:186
获取父实体
Returns
null
| Entity
父实体,如果没有父实体则返回null
children
Get Signature
get children(): readonly
Entity
[]
Defined in: ECS/Entity.ts:195
获取子实体数组的只读副本
Returns
readonly Entity
[]
子实体数组的副本
childCount
Get Signature
get childCount():
number
Defined in: ECS/Entity.ts:204
获取子实体数量
Returns
number
子实体的数量
active
Get Signature
get active():
boolean
Defined in: ECS/Entity.ts:213
获取活跃状态
Returns
boolean
如果实体处于活跃状态则返回true
Set Signature
set active(
value
):void
Defined in: ECS/Entity.ts:224
设置活跃状态
设置实体的活跃状态,会影响子实体的有效活跃状态。
Parameters
value
boolean
新的活跃状态
Returns
void
activeInHierarchy
Get Signature
get activeInHierarchy():
boolean
Defined in: ECS/Entity.ts:238
获取实体的有效活跃状态
考虑父实体的活跃状态,只有当实体本身和所有父实体都处于活跃状态时才返回true。
Returns
boolean
有效的活跃状态
tag
Get Signature
get tag():
number
Defined in: ECS/Entity.ts:249
获取实体标签
Returns
number
实体的数字标签
Set Signature
set tag(
value
):void
Defined in: ECS/Entity.ts:258
设置实体标签
Parameters
value
number
新的标签值
Returns
void
enabled
Get Signature
get enabled():
boolean
Defined in: ECS/Entity.ts:267
获取启用状态
Returns
boolean
如果实体已启用则返回true
Set Signature
set enabled(
value
):void
Defined in: ECS/Entity.ts:276
设置启用状态
Parameters
value
boolean
新的启用状态
Returns
void
updateOrder
Get Signature
get updateOrder():
number
Defined in: ECS/Entity.ts:285
获取更新顺序
Returns
number
实体的更新顺序值
Set Signature
set updateOrder(
value
):void
Defined in: ECS/Entity.ts:294
设置更新顺序
Parameters
value
number
新的更新顺序值
Returns
void
componentMask
Get Signature
get componentMask():
BitMask64Data
Defined in: ECS/Entity.ts:303
获取组件位掩码
Returns
实体的组件位掩码
Methods
createComponent()
createComponent<
T
>(componentType
, ...args
):T
Defined in: ECS/Entity.ts:314
创建并添加组件
Type Parameters
T
T
extends Component
Parameters
componentType
ComponentType
<T
>
组件类型
args
...any
[]
组件构造函数参数
Returns
T
创建的组件实例
addComponent()
addComponent<
T
>(component
):T
Defined in: ECS/Entity.ts:358
添加组件到实体
Type Parameters
T
T
extends Component
Parameters
component
T
要添加的组件实例
Returns
T
添加的组件实例
Throws
如果组件类型已存在
getComponent()
getComponent<
T
>(type
):null
|T
Defined in: ECS/Entity.ts:398
获取指定类型的组件
Type Parameters
T
T
extends Component
Parameters
type
ComponentType
<T
>
组件类型
Returns
null
| T
组件实例或null
hasComponent()
hasComponent<
T
>(type
):boolean
Defined in: ECS/Entity.ts:449
检查实体是否有指定类型的组件
Type Parameters
T
T
extends Component
Parameters
type
ComponentType
<T
>
组件类型
Returns
boolean
如果有该组件则返回true
getOrCreateComponent()
getOrCreateComponent<
T
>(type
, ...args
):T
Defined in: ECS/Entity.ts:465
获取或创建指定类型的组件
Type Parameters
T
T
extends Component
Parameters
type
ComponentType
<T
>
组件类型
args
...any
[]
组件构造函数参数(仅在创建时使用)
Returns
T
组件实例
removeComponent()
removeComponent(
component
):void
Defined in: ECS/Entity.ts:481
移除指定的组件
Parameters
component
要移除的组件实例
Returns
void
removeComponentByType()
removeComponentByType<
T
>(type
):null
|T
Defined in: ECS/Entity.ts:544
移除指定类型的组件
Type Parameters
T
T
extends Component
Parameters
type
ComponentType
<T
>
组件类型
Returns
null
| T
被移除的组件实例或null
removeAllComponents()
removeAllComponents():
void
Defined in: ECS/Entity.ts:556
移除所有组件
Returns
void
addComponents()
addComponents<
T
>(components
):T
[]
Defined in: ECS/Entity.ts:587
批量添加组件
Type Parameters
T
T
extends Component
Parameters
components
T
[]
要添加的组件数组
Returns
T
[]
添加的组件数组
removeComponentsByTypes()
removeComponentsByTypes<
T
>(componentTypes
): (null
|T
)[]
Defined in: ECS/Entity.ts:607
批量移除组件类型
Type Parameters
T
T
extends Component
Parameters
componentTypes
ComponentType
<T
>[]
要移除的组件类型数组
Returns
(null
| T
)[]
被移除的组件数组
getComponents()
getComponents<
T
>(type
):T
[]
Defined in: ECS/Entity.ts:625
获取所有指定类型的组件
Type Parameters
T
T
extends Component
Parameters
type
ComponentType
<T
>
组件类型
Returns
T
[]
组件实例数组
addChild()
addChild(
child
):Entity
Defined in: ECS/Entity.ts:643
添加子实体
Parameters
child
Entity
要添加的子实体
Returns
Entity
添加的子实体
removeChild()
removeChild(
child
):boolean
Defined in: ECS/Entity.ts:673
移除子实体
Parameters
child
Entity
要移除的子实体
Returns
boolean
是否成功移除
removeAllChildren()
removeAllChildren():
void
Defined in: ECS/Entity.ts:688
移除所有子实体
Returns
void
findChild()
findChild(
name
,recursive
):null
|Entity
Defined in: ECS/Entity.ts:703
根据名称查找子实体
Parameters
name
string
子实体名称
recursive
boolean
= false
是否递归查找
Returns
null
| Entity
找到的子实体或null
findChildrenByTag()
findChildrenByTag(
tag
,recursive
):Entity
[]
Defined in: ECS/Entity.ts:729
根据标签查找子实体
Parameters
tag
number
标签
recursive
boolean
= false
是否递归查找
Returns
Entity
[]
找到的子实体数组
getRoot()
getRoot():
Entity
Defined in: ECS/Entity.ts:752
获取根实体
Returns
Entity
层次结构的根实体
isAncestorOf()
isAncestorOf(
entity
):boolean
Defined in: ECS/Entity.ts:766
检查是否是指定实体的祖先
Parameters
entity
Entity
要检查的实体
Returns
boolean
如果是祖先则返回true
isDescendantOf()
isDescendantOf(
entity
):boolean
Defined in: ECS/Entity.ts:783
检查是否是指定实体的后代
Parameters
entity
Entity
要检查的实体
Returns
boolean
如果是后代则返回true
getDepth()
getDepth():
number
Defined in: ECS/Entity.ts:792
获取层次深度
Returns
number
在层次结构中的深度(根实体为0)
forEachChild()
forEachChild(
callback
,recursive
):void
Defined in: ECS/Entity.ts:808
遍历所有子实体(深度优先)
Parameters
callback
(child
, index
) => void
对每个子实体执行的回调函数
recursive
boolean
= false
是否递归遍历
Returns
void
update()
update():
void
Defined in: ECS/Entity.ts:841
更新实体
调用所有组件的更新方法,并更新子实体。
Returns
void
destroy()
destroy():
void
Defined in: ECS/Entity.ts:862
销毁实体
移除所有组件、子实体并标记为已销毁。
Returns
void
compareTo()
compareTo(
other
):number
Defined in: ECS/Entity.ts:897
比较实体
Parameters
other
Entity
另一个实体
Returns
number
比较结果
toString()
toString():
string
Defined in: ECS/Entity.ts:906
获取实体的字符串表示
Returns
string
实体的字符串描述
getDebugInfo()
getDebugInfo():
object
Defined in: ECS/Entity.ts:915
获取实体的调试信息(包含组件缓存信息)
Returns
object
包含实体详细信息的对象
name
name:
string
id
id:
number
enabled
enabled:
boolean
active
active:
boolean
activeInHierarchy
activeInHierarchy:
boolean
destroyed
destroyed:
boolean
componentCount
componentCount:
number
componentTypes
componentTypes:
string
[]
componentMask
componentMask:
string
parentId
parentId:
null
|number
childCount
childCount:
number
childIds
childIds:
number
[]
depth
depth:
number
indexMappingSize
indexMappingSize:
number
denseIndexMappingSize
denseIndexMappingSize:
number