ECS Framework API / ReferenceTracker
Class: ReferenceTracker
Defined in: packages/core/src/ECS/Core/ReferenceTracker.ts:92
Entity引用追踪器
追踪Component中对Entity的引用,当Entity被销毁时自动清理所有引用。
Example
const tracker = new ReferenceTracker();
tracker.registerReference(targetEntity, component, 'parent');
targetEntity.destroy(); // 自动将 component.parent 设为 nullConstructors
Constructor
new ReferenceTracker():
ReferenceTracker
Returns
ReferenceTracker
Methods
registerReference()
registerReference(
entity,component,propertyKey):void
Defined in: packages/core/src/ECS/Core/ReferenceTracker.ts:105
注册Entity引用
Parameters
entity
被引用的Entity
component
持有引用的Component
propertyKey
string
Component中存储引用的属性名
Returns
void
unregisterReference()
unregisterReference(
entity,component,propertyKey):void
Defined in: packages/core/src/ECS/Core/ReferenceTracker.ts:132
注销Entity引用
Parameters
entity
被引用的Entity
component
持有引用的Component
propertyKey
string
Component中存储引用的属性名
Returns
void
clearReferencesTo()
clearReferencesTo(
entityId):void
Defined in: packages/core/src/ECS/Core/ReferenceTracker.ts:157
清理所有指向指定Entity的引用
将所有引用该Entity的Component属性设为null。
Parameters
entityId
number
被销毁的Entity ID
Returns
void
clearComponentReferences()
clearComponentReferences(
component):void
Defined in: packages/core/src/ECS/Core/ReferenceTracker.ts:191
清理Component的所有引用注册
当Component被移除时调用,清理该Component注册的所有引用。
Parameters
component
被移除的Component
Returns
void
getReferencesTo()
getReferencesTo(
entityId):EntityRefRecord[]
Defined in: packages/core/src/ECS/Core/ReferenceTracker.ts:218
获取指向指定Entity的所有引用记录
Parameters
entityId
number
Entity ID
Returns
引用记录数组(仅包含有效引用)
cleanup()
cleanup():
void
Defined in: packages/core/src/ECS/Core/ReferenceTracker.ts:241
清理所有失效的WeakRef引用
遍历所有记录,移除已被GC回收的Component引用。
Returns
void
registerEntityScene()
registerEntityScene(
entityId,scene):void
Defined in: packages/core/src/ECS/Core/ReferenceTracker.ts:273
注册Entity到Scene的映射
Parameters
entityId
number
Entity ID
scene
Scene实例
Returns
void
unregisterEntityScene()
unregisterEntityScene(
entityId):void
Defined in: packages/core/src/ECS/Core/ReferenceTracker.ts:282
注销Entity到Scene的映射
Parameters
entityId
number
Entity ID
Returns
void
getDebugInfo()
getDebugInfo():
object
Defined in: packages/core/src/ECS/Core/ReferenceTracker.ts:289
获取调试信息
Returns
object