Skip to content

ECS Framework API v2.2.13


ECS Framework API / ReferenceTracker

Class: ReferenceTracker

Defined in: packages/core/src/ECS/Core/ReferenceTracker.ts:92

Entity引用追踪器

追踪Component中对Entity的引用,当Entity被销毁时自动清理所有引用。

Example

typescript
const tracker = new ReferenceTracker();
tracker.registerReference(targetEntity, component, 'parent');
targetEntity.destroy(); // 自动将 component.parent 设为 null

Constructors

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

被引用的Entity

component

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

被引用的Entity

component

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

被移除的Component

Returns

void


getReferencesTo()

getReferencesTo(entityId): EntityRefRecord[]

Defined in: packages/core/src/ECS/Core/ReferenceTracker.ts:218

获取指向指定Entity的所有引用记录

Parameters

entityId

number

Entity ID

Returns

EntityRefRecord[]

引用记录数组(仅包含有效引用)


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

IScene

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

Released under the MIT License.