Skip to content

ECS Framework API v2.2.11


ECS Framework API / VersionMigrationManager

Class: VersionMigrationManager

Defined in: packages/core/src/ECS/Serialization/VersionMigration.ts:27

版本迁移管理器

Constructors

Constructor

new VersionMigrationManager(): VersionMigrationManager

Returns

VersionMigrationManager

Methods

registerComponentMigration()

static registerComponentMigration(componentType, fromVersion, toVersion, migration): void

Defined in: packages/core/src/ECS/Serialization/VersionMigration.ts:63

注册组件迁移函数

Parameters

componentType

string

组件类型名称

fromVersion

number

源版本号

toVersion

number

目标版本号

migration

ComponentMigrationFunction

迁移函数

Returns

void

Example

typescript
// 从版本1迁移到版本2
VersionMigrationManager.registerComponentMigration(
    'PlayerComponent',
    1,
    2,
    (data) => {
        // 添加新字段
        data.experience = 0;
        return data;
    }
);

registerSceneMigration()

static registerSceneMigration(fromVersion, toVersion, migration): void

Defined in: packages/core/src/ECS/Serialization/VersionMigration.ts:99

注册场景迁移函数

Parameters

fromVersion

number

源版本号

toVersion

number

目标版本号

migration

SceneMigrationFunction

迁移函数

Returns

void

Example

typescript
VersionMigrationManager.registerSceneMigration(
    1,
    2,
    (scene) => {
        // 迁移场景结构
        scene.metadata = { ...scene.metadata, migratedFrom: 1 };
        return scene;
    }
);

migrateComponent()

static migrateComponent(component, targetVersion): SerializedComponent

Defined in: packages/core/src/ECS/Serialization/VersionMigration.ts:114

迁移组件数据

Parameters

component

SerializedComponent

序列化的组件数据

targetVersion

number

目标版本号

Returns

SerializedComponent

迁移后的组件数据


migrateScene()

static migrateScene(scene, targetVersion): SerializedScene

Defined in: packages/core/src/ECS/Serialization/VersionMigration.ts:159

迁移场景数据

Parameters

scene

SerializedScene

序列化的场景数据

targetVersion

number

目标版本号

Returns

SerializedScene

迁移后的场景数据


clearMigrations()

static clearMigrations(): void

Defined in: packages/core/src/ECS/Serialization/VersionMigration.ts:241

清除所有迁移函数

Returns

void


getComponentMigrationPath()

static getComponentMigrationPath(componentType): number[]

Defined in: packages/core/src/ECS/Serialization/VersionMigration.ts:252

获取组件的迁移路径

Parameters

componentType

string

组件类型名称

Returns

number[]

可用的迁移版本列表


getSceneMigrationPath()

static getSceneMigrationPath(): number[]

Defined in: packages/core/src/ECS/Serialization/VersionMigration.ts:266

获取场景的迁移路径

Returns

number[]

可用的场景迁移版本列表


canMigrateComponent()

static canMigrateComponent(componentType, fromVersion, toVersion): boolean

Defined in: packages/core/src/ECS/Serialization/VersionMigration.ts:278

检查是否可以迁移组件

Parameters

componentType

string

组件类型名称

fromVersion

number

源版本

toVersion

number

目标版本

Returns

boolean

是否存在完整的迁移路径


canMigrateScene()

static canMigrateScene(fromVersion, toVersion): boolean

Defined in: packages/core/src/ECS/Serialization/VersionMigration.ts:309

检查是否可以迁移场景

Parameters

fromVersion

number

源版本

toVersion

number

目标版本

Returns

boolean

是否存在完整的迁移路径

Released under the MIT License.