Files
funplay-cocos-mcp/docs/editor-messages-3.8.8.md
mingyuansi b65a4f22c3 fix: Windows spawn, prefab path, preview API, asset deps, error messages; add execute-context resource, tool descriptions, scene/script/asset tools
Bug fixes (verified against Cocos Creator 3.8.8):
- diagnostics: shell:true for .cmd/.bat on Windows (T125/T126)
- prefabs: duplicatePrefab target resolves under assets/ (T420)
- cocos-project: add preview.open candidate for 3.8.8 (T444)
- assets-advanced: detect directory assets in inspectAssetDependencies (T110)
- scene: improve component-not-found errors with compilation hint (T429)

Documentation improvements:
- tool-registry: add enum and injected vars to execute_javascript, path format examples, asset ref limitation note
- resources: add cocos://mcp/execute-context resource with variables, patterns, pitfalls

New tools (core 37->38, full 101->110):
- scene-management: create_scene, query_scene_state (core), copy_paste_node, rename_node, reparent_node
- scripts: create_script with component/plain templates
- prefabs: create_prefab
- assets-advanced: batch_asset_ops, find_unused_assets
2026-06-30 21:53:06 +08:00

59 KiB
Raw Permalink Blame History

Cocos Creator 3.8.8 编辑器 Message 列表

数据来源: Cocos Creator 3.8.8 编辑器 app.asar 内置扩展包 提取时间: 2026-06-30 i18n 已解析为中文文本

目录

  1. animation-graph (10 messages)
  2. animator (38 messages)
  3. asset-db (66 messages)
  4. builder (59 messages)
  5. engine (12 messages)
  6. information (4 messages)
  7. menu (3 messages)
  8. messages (11 messages)
  9. metrics (11 messages)
  10. placeholder (1 messages)
  11. preferences (10 messages)
  12. preview (22 messages)
  13. program (5 messages)
  14. programming (12 messages)
  15. project (19 messages)
  16. scene (218 messages)
  17. server (7 messages)
  18. shortcuts (8 messages)
  19. tester (4 messages)
  20. utils (2 messages)
  21. window (4 messages)
  22. cocos-service (16 messages)
  23. im-plugin (11 messages)

总计: 553 条 message


animation-graph

Message Methods Public Description Doc Example
open open No
dialog-warn dialogWarn No
apply default.apply No
unselect default.unselect No
delete default.delete No
copy default.copy No
duplicate default.duplicate No
paste default.paste No
scene:ready profileBindWatchWhenSceneReady, default.refresh No
animation-graph:changed default.refresh No

animator

Message Methods Public Description Doc Example
open open No
scene:ready default.scene:ready No
scene:close default.scene:close No
scene:change-node default.scene:change-node No
scene:animation-start default.scene:animation-start No
scene:animation-end default.scene:animation-end No
scene:animation-change default.scene:animation-change No
scene:animation-state-change default.scene:animation-state-change No
scene:change-mode default.scene:change-mode No
scene:animation-clip-change default.scene:animation-clip-change No
selection:activated default.selection:activated No
asset-db:asset-change default.asset-db:asset-change No
asset-db:asset-delete default.asset-db:asset-delete No
inspector-drop-animation dropClipToNode No
change-debug-mode default.change-debug-mode No
copy default.copy No
paste default.paste No
select-all default.selectAll No
delete default.deleteSelected No
create default.createKey No
focus default.showAllKeys No
show-selected-keys default.showSelectedKeys No
next-step default.nextStep No
prev-step default.prevStep No
jump-to-next-key default.jumpToNextKey No
jump-to-prev-key default.jumpToPrevKey No
jump-to-first-frame default.jumpFirstFrame No
jump-to-last-frame default.jumpLastFrame No
play-or-pause default.playOrPause No
stop default.stop No
clear-selected default.clearSelect No
switch-animation-mode default.changeRecordState No
open-docs openDocs No
query-last-clip-cache queryLatestClipCache No
save-clip-cache saveClipCacheToFile No
update-cache-config updateCacheConfig No
enable-embedded-player default.enableEmbeddedPlayer No
enable-auxiliary-curve default.enableAuxiliaryCurve No

asset-db

Message Methods Public Description Doc Example
asset-db:ready ready Yes 资源数据库准备就绪时的广播 Editor.Message.broadcast('asset-db:ready');
asset-db:close close Yes 资源数据库关闭时的广播 Editor.Message.broadcast('asset-db:close');
asset-db:asset-add Yes 当资源数据库准备就绪后,再新增资源时的广播 Editor.Message.broadcast('asset-db:asset-add');
asset-db:asset-change Yes 当一个资源被修改时的广播 Editor.Message.broadcast('asset-db:asset-change');
asset-db:asset-delete Yes 当一个资源被删除时的广播 Editor.Message.broadcast('asset-db:asset-delete');
project:change-high-quality projectChangeHighQuality No
query-ready queryReady Yes 检查资源数据库是否启动完毕 @returns {boolean} 是否准备就绪 await Editor.Message.request('asset-db', 'query-ready');
create-asset createAsset Yes 新建一个资源 - url {string} 资源的 URL,例如 db://assets/abc.json
- content {string | null} 写入文件的 string,为 null 则新建文件夹
- option {AssetOperationOption}
- option.overwrite {boolean} 是否强制覆盖,默认 false
- option.rename {boolean} 冲突是否自动更名,默认 false

@returns {AssetInfo} 返回一个资源信息
await Editor.Message.request('asset-db', 'create-asset', url, content);
new-asset newAsset No 新建一个资源
import-asset importAsset Yes 将一个文件或文件夹导入到资源数据库内 - source {string} 本地的文件绝对地址
- target {string} 导入到数据库的 url 地址
- option {AssetOperationOption}
- option.overwrite {boolean} 是否强制覆盖,默认 false
- option.rename {boolean} 冲突是否自动更名,默认 false

@returns {AssetInfo} 返回一个资源信息
await Editor.Message.request('asset-db', 'import-asset', path, url, { overwrite: true, rename: true });
copy-asset copyAsset Yes 复制某个资源 - source {string} 源资源的 URL 路径,例如 db://assets/abc.json
- target {string} 复制到的目标位置 URL
- option {AssetOperationOption}
- option.overwrite {boolean} 是否强制覆盖,默认 false
- option.rename {boolean} 冲突是否自动更名,默认 false

@returns {AssetInfo} 返回一个资源信息
await Editor.Message.request('asset-db', 'copy-asset', sourceUrl, targetUrl, { overwrite: true, rename: true });
move-asset moveAsset Yes 将一个资源移动到某个地方 - source {string} 需要移动的源资源 URL 路径,例如 db://assets/abc.json
- target {string} 移动到的目标位置 URL
- option {AssetOperationOption}
- option.overwrite {boolean} 是否强制覆盖,默认 false
- option.rename {boolean} 冲突是否自动更名,默认 false

@returns {AssetInfo} 返回一个资源信息
await Editor.Message.request('asset-db', 'move-asset', sourceUrl, targetUrl);
rename-asset renameAsset No 重命名指定资源
delete-asset deleteAsset Yes 删除一个资源 - url {string} 资源的 URL

@returns {AssetInfo} 返回一个资源信息
await Editor.Message.request('asset-db', 'delete-asset', pathOrUrlOrUUID);
open-asset openAsset Yes 尝试使用记录的打开程序打开一个资源 - urlOrUUID {string} 尝试打开的资源 URL 或者 UUID await Editor.Message.request('asset-db', 'open-asset', urlOrUUID);
save-asset saveAsset Yes 保存资源 - urlOrUUID {string} 资源的 URL 或者 UUID
- content {string | Buffer} 资源的内容字符串,如果是 typeArray,请使用 Buffer.from 转换。

@returns {AssetInfo} 返回一个资源信息
await Editor.Message.request('asset-db', 'save-asset', urlOrUUID, content);
save-asset-meta saveAssetMeta Yes 保存资源的 meta 信息 - urlOrUUID {string} 资源的 URL 或者 UUID
- content {string} 资源 meta 序列化后的内容字符串

@returns {AssetInfo} 返回一个资源信息
await Editor.Message.request('asset-db', 'save-asset-meta', urlOrUUID, content);
reimport-asset reimportAsset Yes 重新导入资源 - urlOrUUID {string} 资源的 URL 或者 UUID await Editor.Message.request('asset-db', 'reimport-asset', urlOrUUID);
refresh-asset refreshAsset Yes 刷新一个资源所在的 url 位置,删除资源会被销毁,新增资源会导入 - urlOrUUID {string} 资源的 URL 或者 UUID await Editor.Message.request('asset-db', 'refresh-asset', urlOrUUID);
refresh-all-effect refreshAllEffect No
query-path queryPath Yes 查询一个资源的路径 - urlOrUUID {string} 资源的 URL 或者 UUID

@returns {string} 返回一个资源的磁盘绝对路径
await Editor.Message.request('asset-db', 'query-path', urlOrUUID);
query-url queryUrl Yes 查询一个资源的 URL - uuid {string} 资源的 UUID

@returns {string} 返回一个资源的 url
await Editor.Message.request('asset-db', 'query-url', uuidOrPath);
query-uuid queryUUID Yes 查询一个资源的 UUID - url {string} 资源的 URL

@returns {string} 返回一个资源的 uuid
await Editor.Message.request('asset-db', 'query-uuid', urlOrUUID);
query-assets queryAssets Yes 根据条件查询资源数组 - pattern? {string} 路径匹配模式,glob 格式 (db://**)
- ccType? {string} 资源类型,例如 cc.Texture2D
- importer? {string} 资源导入器类型,例如 texture

@returns {AssetInfo[]} 返回资源数组
await Editor.Message.request('asset-db', 'query-assets', { ccType: 'cc.Script' });
query-asset-info queryAssetInfo Yes 查询一个资源的基本信息 - urlOrUUID {string} 资源的 url 地址或者 uuid

@returns {AssetInfo} 返回一个资源信息
await Editor.Message.request('asset-db', 'query-asset-info', urlOrUUIDOrPath);
query-missing-asset-info queryMissingAssetInfo No
query-asset-meta queryAssetMeta Yes 查询一个资源的 META 信息 - urlOrUUID {string} 资源的 url 地址或者 uuid

@returns {AssetMeta} 返回一个资源 meta 信息
await Editor.Message.request('asset-db', 'query-asset-meta', urlOrUUID);
query-asset-dependinces queryAssetDependencies No
query-asset-used queryAssetUsed No
query-asset-dependencies queryAssetDependencies Yes 查询一个资源依赖的资源或脚本 uuid 数组 - urlOrUUID {string} 资源的 url 地址或者 uuid
- type? {QueryAssetType} 查询的资源类型,默认 asset, 可选值:asset, script, all

@returns {string[]} 返回一个资源依赖的资源或脚本 uuid 数组
await Editor.Message.request('asset-db', 'query-asset-dependencies', urlOrUUID, type);
query-asset-users queryAssetUsers Yes 查询一个资源被哪些资源或脚本直接使用到 - urlOrUUID {string} 资源的 url 地址或者 uuid
- type? {QueryAssetType} 查询的资源类型,默认 asset, 可选值:asset, script, all

@returns {string[]} 返回一个资源被哪些资源或脚本直接使用到
await Editor.Message.request('asset-db', 'query-asset-users', urlOrUUID, type);
query-asset-data queryAssetData No
generate-available-url generateAvailableUrl Yes 根据传入的 url 生成一个可用的新 url - url {string} 资源的 url

@returns {string} 返回一个新的或者和传入参数一样的 url
await Editor.Message.request('asset-db', 'generate-available-url', url);
query-asset-mtime queryAssetMtime No
refresh refresh No
is-busy isBusy No
pause pause No
resume resume No
open-devtools open-devtools No
query-db-info query-db-info No
query-db-infos query-db-infos No
query-db-list query-db-list No
create-asset-dialog create-asset-dialog No
create-asset-template create-asset-template No
init-asset init-asset No
query-all-importer query-all-importer No
query-all-asset-types query-all-asset-types No
execute-script executeScript No
execute-custom-operation executeCustomOperation No
start-db startDatabase No
stop-db stopDatabase No
notice-reload-editor noticeReloadEditor No
notice-config-changed noticeConfigChanged No
update-config updateConfig No
refresh-all-database refreshAllDatabase No
refresh-default-user-data-config refreshDefaultUserDataConfig No
update-default-user-data updateDefaultUserData No
query-create-list queryCreateList No
query-icon-config-map queryIconConfigMap No
query-asset-config-map queryAssetConfigMap No
query-create-menu-list queryCreateMenuList No
query-asset-userData-config queryAssetUserDataConfig No
query-asset-thumbnail queryAssetThumbnail No
batch-message-handler batchMessageHandler No
show-asset-template-dir showAssetTemplateDir No
query-global-internal-library query-global-internal-library No

builder

Message Methods Public Description Doc Example
open open Yes 打开构建面板 @returns {null} await Editor.Message.request('builder', 'open');
open-bundle openBundle No
change-build-bundle build-bundle.changeBuildBundle No
open-page default.open-page No
query-worker-ready query-worker-ready Yes 查询构建进程是否启动 @returns {boolean} - 构建进程是否准备好 await Editor.Message.request('builder', 'query-worker-ready');
execute-build-stage execute-build-stage No
open-platform-debug-tools open-platform-debug-tools No
create-build-plugin-template createBuildPluginTemplate No
create-build-template create-build-template No
create-application-template createApplicationTemplate No
open-devtools openWorkerDevTool No
generate-preview-setting generate-preview-setting No
query-tasks-info query-tasks-info No
add-task add-task No
select-all-task default.select-all-task No
clear-selected-task default.clear-selected-task No
add-bundle-task add-bundle-task No
recompile-task recompile-task No
remove-task remove-task No
break-task break-task No
query-task query-task No
update-task update-task No
save-task save-task No
preview-pac preview-pac No
query-atlas-files query-atlas-files No
command-build command-build No
asset-db:ready asset-db:ready, default.asset-db:ready No
asset-db:close asset-db:close No
asset-db:asset-delete default.asset-db:asset-delete, build-bundle.asset-db:asset-delete No
asset-db:asset-add default.asset-db:asset-add, build-bundle.asset-db:asset-add No
asset-db:asset-change default.asset-db:asset-change, build-bundle.asset-db:asset-change No
request-to-build-worker request-to-build-worker No
execute-hook-task execute-hook-task No
preferences-changed preferences-changed No
query-compress-config query-compress-config No
query-platform-config query-platform-config No
query-bundle-config query-bundle-config No
migrate-options migrateOptions No
builder:task-changed default.builder:task-changed, build-bundle.builder:task-changed No
builder:task-add build-bundle.builder:task-add No
builder:task-delete default.builder:task-delete, build-bundle.builder:task-delete No
builder:bundle-task-changed build-bundle.bundle-task:changed No
change-debug-mode default.change-debug-mode No
build-worker:ready default.onBuildWorkerReady, build-bundle.onBuildWorkerReady Yes 构建进程启动 Editor.Message.broadcast('build-worker:ready');
build-worker:closed default.onBuildWorkerClosed, build-bundle.onBuildWorkerClosed Yes 构建进程关闭 Editor.Message.broadcast('build-worker:closed');
build-by-shortcut default.buildByShortcut No
console:update-log-level console:update-log-level No
register-package registerPackage No
unregister-package unRegisterPackage No
programming:pack-build-end programming:pack-build-end No
open-docs openDocs No
check-and-complete-options check-and-complete-options No
open-panel-devtools openPanelDevTools No
open-worker-devtools openWorkerDevTool No
clear-all-cache clearAllCache No
clear-assets-cache clearProjectAssetsCache No
clear-engine-cache clearEngineCache No
copy-build-notice copy-build-notice No
export-bundle-config build-bundle.exportBundleBuildConfig No

engine

Message Methods Public Description Doc Example
rebuild rebuild No
relaunch relaunch No
import-engine-error importEngineError No
pipeline-config-change onPipelineConfigChange No
query-info query-info No
query-engine-info query-engine-info No
query-modules-config query-modules-config No
change-custom-engine-config changeCustomEngineConfig No
engine:engine-modules-global-config-changed onEngineModulesChanged No
engine-custom-macro-changed onCustomMacroChanged No
query-engine-modules-profile queryEngineModulesProfile No
filter-engine-modules filterEngineModules No

information

Message Methods Public Description Doc Example
query-information queryInformation No
open-information-dialog openInformationDialog No
has-dialog hasDialog No
close-dialog closeDialog No

menu

Message Methods Public Description Doc Example
engine:engine-modules-global-config-changed engineModuleChanged No
edit-mode:enter modeChanged No
shortcuts:change onShortcutChange No

messages

Message Methods Public Description Doc Example
start-record addListener No
stop-record removeListener No
start-auto-save startAutoSave No
stop-auto-save stopAutoSave No
open open No
open-debug openDebug No
broadcast debug.broadcast No
request debug.request No
send debug.send No
reply debug.reply No
query-message-state queryMessageState No

metrics

Message Methods Public Description Doc Example
metrics:init init No
metrics:trackEvent trackEvent No
metrics:trackException trackException No
metrics:trackProcessMemory trackProcessMemory No
metrics:trackTimeStart trackTimeStart No
metrics:trackTimeEnd trackTimeEnd No
metrics:_trackEventWithTimer _trackEventWithTimer No
metrics:_sendEventGroup _sendEventGroup No
metrics:_trackCrashEvent _trackCrashEvent No
query-google-v4-data query-google-v4-data No
query-google-metrics-v4-html query-google-metrics-v4-html No

placeholder

Message Methods Public Description Doc Example
install-extension installExtension No

preferences

Message Methods Public Description Doc Example
open-settings openSettings Yes 打开偏好设置面板 - tab {string} 需要打开的选项卡(功能插件的名称)
- ...args: {any[]} 打开选项卡带的其他参数

@returns {null}
await Editor.Message.request('preferences', 'open-settings');
change-settings-tab settings.changeTab No
refresh-settings-tab settings.refreshTab No
query-settings-tab settings.queryTab No
query-preferences-configs queryPreferencesConfigs No
query-configs-from-path queryConfigsFromPath No
query-config queryConfig Yes 查询偏好配置 - name {string} 插件或分类名
- path? {string} 配置路径
- type? {'default' | 'global' | 'local'} 配置类型

@returns {any} 返回配置数据
await Editor.Message.request('preferences', 'query-config', 'preview', 'general', 'global');
set-config setConfig Yes 设置偏好配置 - name {string} 插件名
- path {string} 配置路径
- value {any} 配置数据
- type? {'default' | 'global' | 'local'} 配置类型

@returns {boolean} 是否设置成功
await Editor.Message.request('preferences', 'set-config', 'preview', 'general.auto_refresh', false, 'global');
import-config importConfig No
export-config exportConfig No

preview

Message Methods Public Description Doc Example
open open No
ready ready No
generate-settings generateSettings No
query-preview-url queryPreviewUrl No
query-connect-num queryConnectNum No
scene:save currentSceneSave No
programming:compiled programming:compiled No
programming:compile-start programming:compile-start No
open-terminal open-terminal No
restart-simulator restart-simulator No
reload-terminal reload-terminal No
get-preview-ip get-preview-ip No
set-preview-ip set-preview-ip No
create-template create-template No
change-platform change-platform No
programming:pack-build-end on-pack-build-end No
build-simulator-engine-ts buildSimulatorEngineTS No
preview-scene-in-browser previewSceneInBrowser No
write-setting-file writeSettingFile No
asset-db:asset-change asset-db:asset-change No
build-worker:ready build-worker:ready No
build-worker:closed build-worker:closed No

program

Message Methods Public Description Doc Example
query-program-info queryProgramInfo No
query-program-config queryProgramConfig No
open-program openProgram No
execute-program executeProgram No
open-url openUrl No

programming

Message Methods Public Description Doc Example
packer-driver/start packer-driver/start No
packer-driver/get-loader-context packer-driver/get-loader-context No
packer-driver/ready packer-driver/ready No
packer-driver/update-auto-update-import-config packer-driver/update-auto-update-import-config No
packer-driver/query-script-deps packer-driver/query-script-deps No
packer-driver/query-script-users packer-driver/query-script-users No
packer-driver/query-cc-editor-module-map packer-driver/query-cc-editor-module-map No
query-shared-settings query-shared-settings No
clear-code-cache clear-code-cache No
open-dev-tools open-dev-tools No
engine:engine-custom-macro-changed custom-macro-changed No
query-sorted-plugins querySortedPlugins No

project

Message Methods Public Description Doc Example
asset-db:ready settings.assetDbReady No
open-settings openSettings Yes 打开项目设置面板 - name {string} 要打开的选项卡所属的插件注册名称
- tab {string} 在注册功能时使用的键
- ...args: {any[]} 打开选项卡时附带的其他参数

@returns {null}
await Editor.Message.request('project', 'open-settings');
open-joint openJoint No
change-settings-tab settings.changeTab No
refresh-settings-tab settings.refreshTab No
query-settings-tab settings.queryTab No
change-script-config changeScriptConfig No
change-design-resolution changeDesignResolution No
query-design-resolution queryDesignResolution No
change-custom-layer changeCustomLayer No
change-sorting-layer changeSortingLayer No
change-hight-quality changeHighQuality No
calc-joint-layout calcJointLayouts No
query-project-configs queryProjectConfigs No
query-configs-from-path queryConfigsFromPath No
query-config queryConfig Yes 查询项目配置 - name {string} 插件名
- path? {string} 配置路径
- type? {'default' | 'project'} 配置类型

@returns {any} 返回配置数据
await Editor.Message.request('project', 'query-config', 'engine', 'modules');
set-config setConfig Yes 设置项目配置 - name {string} 插件名
- path {string} 配置路径
- value {any} 配置数据

@returns {boolean} 设置成功与否
await Editor.Message.request('project', 'set-config', 'project', 'general.downloadMaxConcurrency', 10);
import-config importConfig No
export-config exportConfig No

scene

Message Methods Public Description Doc Example
query-scene-bounds default.query-scene-bounds No
change-native-config default.change-native-config No
debug-view default.change-debug-view-option No
quit-editor default.quit-editor No
scene:preview-stop preview.onEditorPreviewStop No
open open No
full-screen default.fullScreen No
i18n:change default.i18n:change No
scene:ready onSceneReady, default.scene:ready Yes 场景打开通知 - uuid {string} uuid of scene Editor.Message.broadcast('scene:ready', assetUuid);
scene:close default.scene:close, onSceneClosed Yes 场景关闭通知 Editor.Message.broadcast('scene:close');
asset-db:ready default.asset-db:ready No
asset-db:close default.asset-db:close No
selection:hover default.selection:hover No
selection:select default.selection:select No
selection:unselect default.selection:unselect No
asset-db:asset-add default.asset-db:asset-add No
asset-db:asset-change default.asset-db:asset-change No
asset-db:asset-delete default.asset-db:asset-delete No
programming:pack-build-end default.programming:pack-build-end No
project:change-design-resolution default.project:change-design-resolution No
project:change-custom-layer default.project:change-custom-layer No
project:change-sorting-layer default.project:change-sorting-layer No
project:update-physics-group default.project:update-physics-group No
project:change-high-quality default.project:change-high-quality No
engine:engine-modules-global-config-changed default.engine:engine-modules-global-config-changed No
open-devtools default.open-devtools No
open-preview-devtools default.open-preview-devtools No
graphical-tools default.graphicalTools No
open-scene default.open-scene Yes 打开场景 - uuid {string} 场景资源的 UUID await Editor.Message.request('scene', 'open-scene', sceneUuid);
load-empty-scene default.load-empty-scene No
save-scene default.save-scene Yes 保存场景 await Editor.Message.request('scene', 'save-scene');
save-as-scene default.save-as-scene Yes 场景另存为 await Editor.Message.request('scene', 'save-as-scene');
close-scene default.close-scene Yes 关闭场景 await Editor.Message.request('scene', 'close-scene');
set-property default.set-property Yes 设置某个元素内的属性 - options {SetPropertyOptions}
- uuid {string} 修改属性的对象的 uuid
- path {string} 属性挂载对象的搜索路径
- dump {IProperty} 属性 dump 出来的数据
await Editor.Message.request('scene', 'set-property', {
uuid: nodeUuid,
path: 'comps.1.defaultClip',
dump: {
type: 'cc.AnimationClip',
value: {
uuid: animClipUuid,
},
},
});
reset-property default.reset-property Yes 重置元素属性到默认值 - options {SetPropertyOptions}
- uuid {string} 修改属性的对象的 uuid
- path {string} 属性挂载对象的搜索路径
await Editor.Message.request('scene', 'reset-property', {
uuid: nodeUuid,
path: 'position',
});
preview-set-property default.preview-set-property No
cancel-preview-set-property default.cancel-preview-set-property No
update-property-from-null default.update-property-from-null No
set-node-and-children-layer default.set-node-and-children-layer No
move-array-element default.move-array-element Yes 移动数组内某个元素的位置 - options {MoveArrayOptions}
- uuid {string} 节点的 uuid
- path {string} 数组的搜索路径
- target {number} 目标 item 原来的索引
- offset {number} 偏移量

@returns {boolean} 操作是否成功
await Editor.Message.request('scene', 'move-array-element', {
uuid: nodeUuid,
path: 'comps',
target: 1,
offset: -1,
});
remove-array-element default.remove-array-element Yes 删除数组内某个元素的位置 - options {MoveArrayOptions}
- uuid {string} 节点的 uuid
- path {string} 数组的搜索路径
- index {number} 目标 item 的索引

@returns {boolean} 操作是否成功
await Editor.Message.request('scene', 'remove-array-element', {
uuid: nodeUuid,
path: 'comps',
index: 0,
});
select-all-nodes default.select-all-nodes No
copy-node default.copy-node Yes 拷贝节点,给下一步粘贴(创建)节点准备数据 - uuids {string | string[]} 节点的 uuid

@returns {string | string[]} 返回节点的 uuid
await Editor.Message.request('scene', 'copy-node', uuids);
duplicate-node default.duplicate-node Yes 复制节点 - uuids {string | string[]} 节点的 uuid

@returns {string | string[]} 返回新节点的 uuid
await Editor.Message.request('scene', 'duplicate-node', uuids);
paste-node default.paste-node Yes 粘贴节点 - options {PasteNodeOptions}
- target {string} 目标节点 uuid
- uuids {string | string[]} 被复制的节点 uuid
- keepWorldTransform {boolean} 是否保持新节点的世界坐标不变

@returns {string | string[]} 返回新节点的 uuid
await Editor.Message.request('scene', 'paste-node', {
target: nodeUuid,
uuids: nodeUuids,
});
cut-node default.cut-node Yes 剪切节点 - uuids {string | string[]} 节点的 uuid

@returns {string | string[]} 返回节点的 uuid
await Editor.Message.request('scene', 'cut-node', uuids);
set-parent default.set-parent Yes 设置节点父级 - options {CutNodeOptions}
- parent {string} 父节点 uuid
- uuids {string|string[]} 需要设置的子节点 uuid
- keepWorldTransform {boolean} 是否保持新节点的世界坐标不变

@returns {string | string[]} 返回节点的 uuid
await Editor.Message.request('scene','set-parent', {
parent: nodeUuid,
uuids: nodeUuids,
});
create-node default.create-node Yes 创建节点 - options {CreateNodeOptions}
- parent {string} 父节点 uuid
- components? {string[]} 组件名字

- name? {string} 节点名字
- dump? {INode | IScene} node 初始化应用的 dump 数据
- keepWorldTransform? {boolean} 是否保持新节点的世界坐标不变
- type? {string} 资源类型
- canvasRequired? {boolean} 是否需要有 cc.Canvas
- unlinkPrefab? {boolean} 是否要解绑为普通节点
- assetUuid? {string} asset uuid,从资源实例化节点

注意: 使用 assetUuid 从预制体创建节点时,无论 unlinkPrefab 传 false 还是不传,都不会自动建立 Prefab 关联。需额外调用 link-prefab 消息建立关联。

@returns {string | string[]} 返回新节点的 uuid
await Editor.Message.request('scene', 'create-node', {
name: 'New Node'
parent: nodeUuid,
});
reset-node default.reset-node Yes 重置节点的位置, 角度和缩放 - uuid {string} 节点的 uuid

@returns {boolean} 操作是否成功
await Editor.Message.request('scene', 'reset-node', {
uuid: nodeUuid,
});
reset-component default.reset-component Yes 重置组件 - options {ResetComponentOptions}
- uuid {string} 组件的 uuid

@returns {boolean} 操作是否成功
await Editor.Message.request('scene', 'reset-component', {
uuid: componentUuid,
});
restore-prefab default.restore-prefab Yes 使用预制体资源还原对应预制件节点(内置撤销记录) - uuid {string} 节点的 uuid
- assetUuid {string} 资源的 uuid

@returns {boolean} 操作是否成功
await Editor.Message.request('scene', 'restore-prefab', nodeUuid, assetUuid);
remove-node default.remove-node Yes 删除节点 - options {RemoveNodeOptions}
- uuid: {string | string[]} 节点的 uuid
await Editor.Message.request('scene', 'remove-node', {
uuid: nodeUuid
});
create-component default.create-component Yes 创建组件 - options {CreateComponentOptions}
- uuid {string} 节点的 uuid
- component {string} 组件 classId cid)(推荐方式) 或者 className 类名
Editor.Message.request('scene', 'create-component', {
uuid: nodeUuid,
component: 'cc.Sprite'
});
remove-component default.remove-component Yes 删除组件 - options {CreateComponentOptions}
- uuid {string} 节点的 uuid
- component {string} 组件 classId cid)(推荐方式) 或者 className 类名
await Editor.Message.request('scene', 'remove-component', {
uuid: componentUuid,
});
execute-component-method default.execute-component-method Yes 执行组件上的方法 - options {ExecuteComponentMethodOptions}
- uuid {string} 组件的 uuid
- name {string} 方法名
- args {any[]} 参数
await Editor.Message.request('scene', 'execute-component-method', {
uuid: componentUuid,
name: 'getNoisePreview',
args: [100, 100],
});
execute-scene-script default.execute-scene-script Yes 执行某个插件注册的方法 - options {ExecuteSceneScriptMethodsOptions}
- name {string} 注册进来的插件名字
- method {string} 执行的方法名字
- args {any[]} 参数数组
await Editor.Message.request('scene', 'execute-scene-script', {
name: 'animation-graph',
method: 'query',
args: [],
});
snapshot default.snapshot Yes 快照当前场景状态 await Editor.Message.request('scene', 'snapshot');
snapshot-abort default.snapshot-abort Yes 中止快照 await Editor.Message.request('scene', 'snapshot-abort');
begin-recording default.begin-recording Yes 开始记录节点 Undo 数据 const undoID = await Editor.Message.request('scene', 'begin-recording', nodeUuid);
end-recording default.end-recording Yes 结束记录节点 Undo 数据 await Editor.Message.request('scene', 'end-recording', undoID);
cancel-recording default.cancel-recording Yes 取消记录节点 Undo 数据 await Editor.Message.request('scene', 'cancel-recording', undoID);
undo default.undo No
redo default.redo No
soft-reload default.soft-reload Yes 软刷新场景 await Editor.Message.request('scene', 'soft-reload');
preview-material default.preview-material No
light-probe-update-tetrahedron default.light-probe-update-tetrahedron No
change-gizmo-tool default.change-gizmo-tool Yes 更改 Gizmo 工具 - name {string} 工具名字 'position' | 'rotation' | 'scale'| 'rect' await Editor.Message.request('scene', 'change-gizmo-tool', 'position');
query-gizmo-tool-name default.query-gizmo-tool-name Yes 获取当前 Gizmo 工具的名字 @returns {string} 'position' | 'rotation' | 'scale' | 'rect' await Editor.Message.request('scene', 'query-gizmo-tool-name');
change-gizmo-pivot default.change-gizmo-pivot Yes 更改变换基准点 - name {string} 变换基准点 'pivot' | 'center' await Editor.Message.request('scene', 'query-gizmo-pivot');
query-gizmo-pivot default.query-gizmo-pivot Yes 获取当前 Gizmo 基准点名字 @returns {string} 'pivot' | 'center' await Editor.Message.request('scene', 'query-gizmo-pivot');
query-gizmo-view-mode default.query-gizmo-view-mode Yes 查询视图模式(查看/选择) @return {string} 'view' | 'select' await Editor.Message.request('scene', 'query-gizmo-view-mode');
change-gizmo-coordinate default.change-gizmo-coordinate Yes 更改坐标系 - type {string} 坐标系 'local' | 'global' await Editor.Message.request('scene', 'change-gizmo-coordinate', 'global');
query-gizmo-coordinate default.query-gizmo-coordinate Yes 获取当前坐标系名字 @returns {string} 'local' | 'global' await Editor.Message.request('scene', 'query-gizmo-coordinate');
change-is2D default.change-is2D Yes 更改2D/3D视图模式 - is2D {boolean} 2D/3D视图 await Editor.Message.request('scene', 'change-is2D', true);
query-is2D default.query-is2D Yes 获取当前视图模式 @returns {boolean} true:2D, false:3D await Editor.Message.request('scene', 'query-is2D');
set-grid-visible default.set-grid-visible Yes 显示/隐藏网格 - visible {boolean} 显示/隐藏网格 await Editor.Message.request('scene', 'set-grid-visible', false);
query-is-grid-visible default.query-is-grid-visible Yes 查询网格显示状态 @returns {boolean} true: visible, false: invisible await Editor.Message.request('scene', 'query-is-grid-visible');
set-icon-gizmo-3d default.set-icon-gizmo-3d Yes 设置 IconGizmo 为 3D 或 2D 模式 - is3D {boolean} 3D/2D IconGizmo await Editor.Message.request('scene', 'set-icon-gizmo-3d', false);
query-is-icon-gizmo-3d default.query-is-icon-gizmo-3d Yes 查询 IconGizmo 模式 @returns {boolean} true: 3D, false: 2D await Editor.Message.request('scene', 'query-is-icon-gizmo-3d');
set-icon-gizmo-size default.set-icon-gizmo-size Yes 设置 IconGizmo 的大小 - size {number} IconGizmo 的大小 await Editor.Message.request('scene', 'set-icon-gizmo-size', 60);
query-icon-gizmo-size default.query-icon-gizmo-size Yes 查询 IconGizmo 的大小 @returns {number} IconGizmo 的大小 await Editor.Message.request('scene', 'query-icon-gizmo-size');
query-transform-snap-configs default.query-transform-snap-configs No
set-transform-snap-configs default.set-transform-snap-configs No
query-rect-snapping-configs default.query-rect-snapping-configs No
set-rect-snapping-configs default.set-rect-snapping-configs No
focus-camera default.focus-camera Yes 聚焦场景相机到节点上 - uuids {string[] | null} 节点 uuid await Editor.Message.request('scene', 'focus-camera', nodeUuids);
align-with-view default.align-with-view Yes 将场景相机位置与角度应用到选中节点上 @returns {null} await Editor.Message.request('scene', 'align-with-view');
align-view-with-node default.align-view-with-node Yes 将选中节点位置与角度应用到当前视角 @returns {null} await Editor.Message.request('scene', 'align-with-view-node');
zoom-scene-view-down default.zoom-scene-view-down No
zoom-scene-view-up default.zoom-scene-view-up No
toggle-active-selected-node default.toggle-active-selected-node No
toggle-active-unselected-node default.toggle-active-unselected-node No
toggle-active-all-nodes default.toggle-active-all-nodes No
apply-material default.apply-material No
query-physics-material default.query-physics-material No
change-physics-material default.change-physics-material No
apply-physics-material default.apply-physics-material No
query-animation-graph-variant default.query-animation-graph-variant No
change-animation-graph-variant default.change-animation-graph-variant No
apply-animation-graph-variant default.apply-animation-graph-variant No
query-animation-mask default.query-animation-mask No
change-animation-mask default.change-animation-mask No
apply-animation-mask default.apply-animation-mask No
apply-render-texture default.apply-render-texture No
copy-camera-data-to-nodes default.copy-camera-data-to-nodes No
record-animation default.record-animation No
change-animation-root default.change-animation-root No
set-edit-time default.set-edit-time No
change-clip-state default.change-clip-state No
change-edit-clip default.change-edit-clip No
save-clip default.save-clip No
animation-operation default.animation-operation No
create-prefab default.create-prefab No 创建预制体资源(内置撤销记录)
getdata-prefab default.getdata-prefab No
link-prefab default.link-prefab No 将节点关联到预制体资源,建立 Prefab 关联关系 - uuid {string} 节点的 uuid
- assetUuid {string} 预制体资源的 uuid

@returns {boolean} 操作是否成功
await Editor.Message.request('scene', 'link-prefab', nodeUuid, assetUuid);
unlink-prefab default.unlink-prefab No
apply-prefab default.apply-prefab No 应用预制体节点修改到对应资源(内置撤销记录)
apply-removed-component default.apply-removed-component No 应用预制体删除组件的修改到对应资源(内置撤销记录)
revert-removed-component default.revert-removed-component No 还原预制体节点被移除的组件(内置撤销记录)
query-is-ready default.query-is-ready Yes 查询当前场景是否准备就绪 await Editor.Message.request('scene', 'query-is-ready');
query-node default.query-node Yes 查询一个节点的数据 - uuid {string} 节点的 uuid

@returns {Object} 节点的 dump 数据
await Editor.Message.request('scene', 'query-node', nodeUuid);
query-component default.query-component Yes 查询一个组件的数据 - uuid {string} 组件的 uuid

@returns {Object} 组件的 dump 数据
await Editor.Message.request('scene', 'query-component', nodeUuid);
query-node-tree default.query-node-tree Yes 查询节点树的信息 - uuid? {string} 根节点 uuid,不传入则以场景节点为根节点

@returns {Object}
- name {string} 节点名字或者 'scene'
- active {boolean} 节点激活状态
- type {string} cc.Scene or cc.Node
- uuid {string} 节点的 uuid
- children {[]} 子节点数组
- prefab {number} prefab状态, 1 表示是 prefab, 2 表示是 prefab 但丢失资源
- isScene {boolean} 是否是场景节点
- components {[Object]} 组件数组
- type {string} 组件类型
- value {string} 组件的 uuid
- extends {[string]} 组件的继承链数组
await Editor.Message.request('scene', 'query-node-tree', nodeUuid);
query-nodes-by-asset-uuid default.query-nodes-by-asset-uuid Yes 查询使用了资源 UUID 的节点 - 查询使用了资源 UUID 的节点

@returns {string[]} 节点的 uuid
await Editor.Message.request('scene', 'query-nodes-by-asset-uuid', assetUuid);
query-nodes-miss-assets default.query-nodes-miss-assets No
query-component-function-of-node default.query-component-function-of-node No
query-all-effects default.query-all-effects No
query-material default.query-material No
query-effect default.query-effect No
query-serialized-material default.query-serialized-material No
query-render-pipeline default.query-render-pipeline No
change-render-pipeline default.change-render-pipeline No
apply-render-pipeline default.apply-render-pipeline No
query-creatable-asset-types default.query-creatable-asset-types No
query-scene-json default.query-scene-json No
query-current-scene default.query-current-scene No
query-dirty default.query-dirty Yes 查询当前场景是否有修改 await Editor.Message.request('scene', 'query-dirty');
query-classes default.query-classes Yes 查询所有在引擎中注册的类 @returns {[Object]}
- extends? {string} 过滤出基于此类名扩展而来的类
await Editor.Message.request('scene', 'query-classes');
query-components default.query-components Yes 查询当前场景的所有组件 @returns {[Object]}
- name {string} 组件名字
- path {string} 菜单路径
await Editor.Message.request('scene', 'query-components');
query-component-has-script default.query-component-has-script Yes 查询引擎组件列表是否含有指定类名的脚本 - name 脚本的类名 Class

@returns {boolean} 存在 true, 不存在 false
await Editor.Message.request('scene', 'query-component-has-script', 'cc.Sprite');
query-script-name default.query-script-name No
query-script-cid default.query-script-cid No
query-layer-builtin default.query-layer-builtin No
query-sorting-layer-builtin default.query-sorting-layer-builtin No
query-scene-mode default.query-scene-mode No
query-animation-state default.query-animation-state No
query-current-animation-info default.query-current-animation-info No
query-animation-root default.query-animation-root No
query-animation-root-info default.query-animation-root-info No
query-animation-edit-info default.query-animation-edit-info No
query-animation-clip default.query-animation-clip No
query-animation-properties default.query-animation-properties No
query-animation-clips-info default.query-animation-clips-info No
query-animation-clips-time default.query-animation-clips-time No
query-property-value-at-frame default.query-property-value-at-frame No
query-aux-curve-value-at-frame default.query-aux-curve-value-at-frame No
query-auxiliary-curves default.query-auxiliary-curves No
generate-available-name default.generate-available-name No
editor-preview-set-play default.editor-preview-set-play No
editor-refresh-gizmo-config default.editor-refresh-gizmo-config No
editor-preview-call-method default.editor-preview-call-method No
editor-preview-change-style-web default.editor-preview-change-style No
editor-preview-change-style-native preview.editorPreviewChangeStyle No
editor-preview-change-config default.editor-preview-change-config, preview.editorPreviewChangeConfig No
scene:show-loading default.scene:show-loading No
scene:hide-loading default.scene:hide-loading No
execute-model-preview-animation-operation default.execute-model-preview-animation-operation No
regenerate-polygon-2d-points default.regenerate-polygon-2d-points No
export-particle-plist default.export-particle-plist No
change-node-lock default.change-node-lock No
unit-test default.unit-test No
change-target-resolution default.change-target-resolution No
query-latest-cache queryLatestCache No
clear-scene-cache clearSceneCache No
save-scene-cache-to-file saveSceneCacheToFile No
update-cache-config updateCacheConfig No
query-enum-list-with-path default.query-enum-list-with-path No
query-wrap-mode-enum-list default.query-wrap-mode-enum-list No
set-scene-light-on default.set-scene-light-on No
query-scene-light-on default.query-scene-light-on No
native-ipc default.native-ipc No
native-scene default.native-scene No
panel-browser panelToBrowser No
browser-panel default.on-browser-panel No
is-native default.query-is-native No
query-preview-data default.query-preview-data No
call-preview-function default.call-preview-function No
query-thumbnail default.query-thumbnail No
query-preview-game-view-data preview.getGameViewData No
set-preview-window-visible preview.setPreviewWindowVisible, setPreviewWindowVisible No
create-preview-window preview.createPreviewWindow No
resize-native-window resizeNativeWindow No
create-native-window createNativeWindow No
preview-panel-ready onPreviewPanelReady No
preview-panel-stop onPreviewPanelStop No
toggle-light-probe-edit-mode default.toggle-light-probe-edit-mode No
query-light-probe-edit-mode default.query-light-probe-edit-mode No
toggle-light-probe-bounding-box-edit-mode default.toggle-light-probe-bounding-box-edit-mode No
query-light-probe-bounding-box-edit-mode default.query-light-probe-bounding-box-edit-mode No
scene:light-probe-edit-mode-changed Yes 光照探针编辑模式切换通知 - mode {boolean} 切换后的探针编辑模式 Editor.Message.broadcast('scene:light-probe-edit-mode-changed', true);
scene:light-probe-bounding-box-edit-mode-changed Yes 光照探针组件包围盒编辑模式切换通知 - mode {boolean} 切换后的探针组件包围盒编辑模式 Editor.Message.broadcast('scene:light-probe-bounding-box-edit-mode-changed', true);
lod-apply-current-camera-size default.lod-apply-current-camera-size No
lod-insert default.lod-insert No
lod-erase default.lod-erase No
shortcuts:change default.shortcuts:change No
window:zoom-level-change default.window:zoom-level-change No
window:focus-zoom-level-change default.window:focus-zoom-level-change No
multi-open-scene default.multi-open-scene No
multi-close-scene default.multi-close-scene No
multi-scene-dirty default.multi-scene-dirty No
multi-scene-query default.multi-scene-query No
multi-scene-focus default.multi-scene-focus No
multi-scene-focus-query default.multi-scene-focus-query No
multi-save-all-scene default.multi-save-all-scene No
multi-is-multi-edit-mode default.multi-is-multi-edit-mode No
multi-close-to-the-right default.multi-close-to-the-right No
multi-move-tabs-to default.multi-move-tabs-to No
multi-close-others default.multi-close-others No

server

Message Methods Public Description Doc Example
query-ip-list queryIPList Yes 查询 IP 列表 @returns {string[]} - IP 列表 await Editor.Message.request('server', 'query-ip-list');
query-https-enabled queryHTTPSEnabled No
query-sort-ip-list querySortIpList Yes 获取排序后的 ip 列表 @returns {string[]} - 排序后的 IP 列表 await Editor.Message.request('server', 'query-sort-ip-list');
query-port queryPort Yes 查询编辑器服务器当前启动的端口号 @returns {number} - 端口号 await Editor.Message.request('server', 'query-port');
scan-lan scanLAN No
change-preview-port change-preview-port No
change-https-options change-https-options No

shortcuts

Message Methods Public Description Doc Example
open open No
query-shortcut-map queryShortcutMap No
change-shortcut changeShortcut No
change-tab default.changeTab No
reset-shortcut resetShortcut No
query-packages-shortcut-list queryPackagesShortcutList No
remove-custom-shortcut removeCustomShortcut No
shortcuts:change default.onShortcutChanged No

tester

Message Methods Public Description Doc Example
open open No
forwarding-to-window forwarding-to-window No
* panel.* No
auto-test auto-test No

utils

Message Methods Public Description Doc Example
export-dts exportDTS No
tester-tag testerTag No

window

Message Methods Public Description Doc Example
focus-window-zoom-in onFocusWindowZoomIn No
focus-window-zoom-out onFocusWindowZoomOut No
focus-window-zoom-to-initial onFocusWindowZoomToInitial No
window-zoom-level-change onWindowZoomLevelChange No

cocos-service

Message Methods Public Description Doc Example
open-service-panel openServicePanel No
enable-service enableService No
open-popup openPopup No
close-popup closePopup No
print-log printLog No
api-request apiRequest No
popup-show popupShow No
plugin-msg pluginMsg No
plugin-msg-service default.pluginMsg No
plugin-msg-popup simple.pluginMsg, dockable.pluginMsg No
service-ready serviceReady No
i18n:change i18nChange No
service-status-changed onServiceStatusChanged No
drop-scene dropScene No
drop-hierarchy dropHierarchy No
drop-assets dropAssets No

im-plugin

Message Methods Public Description Doc Example
show-panel showPanel No
silent-check-and-update silentCheckAndUpdate No
im-plugin:check default.check No
silent-check silentCheck No
close-panel closePanel No
whether-close whetherClose No
get-sign-in-url getSignInUrl No
get-redirect-url getRedirectUrl No
update-toolbar updateToolbarMain No
save-toolbar-info saveToolbarInfo No
get-saved-toolbar-info getSavedToolbarInfo No

Message 调用方式

在扩展中可以通过以下方式发送 message:

// 发送消息 (等待返回结果)
const result = await Editor.Message.request(packageName, messageName, ...args);

// 发送消息 (不等待返回结果)
Editor.Message.send(packageName, messageName, ...args);

// 广播消息
Editor.Message.broadcast(messageName, ...args);

其中 packageName 为上述各表格的扩展包名称 (如 asset-db, scene, builder 等)。