求2.1.2版本脚本(导入或编译)完毕的IPC消息

核心问题:脚本编译完毕后会重置window域中的数据。现在需要在编辑器内数据被重置后,重新填充一些预设数据进window域

求编辑环境下,JS脚本导入完毕后的IPC消息
我发现在脚本导入出错后有 asset-db:script-import-failed 这么一个消息,却没有找到导入完毕的IPC消息
手头项目需要在脚本导入完毕(如果有编译过程的话需要在编译完毕后)的IPC消息,求各路大神指点迷津!
跪谢!

另外,吐个文档的槽,常用IPC消息参考里有这么几条说明:
编译
1.editor:build-start 编译开始的消息
2.editor:build-finished 编译完成的消息
3.builder:state-changed 编译状态更新时,发送的消息

上述几点说明不太恰当,把“编译”翻译成“构建”更加合适

/华丽的分割线/

文档里有一处说明也难以理解:

引用插件脚本
直接使用 window.globalVar 来访问插件脚本里声明的全局变量和方法即可。

实测2.1.2版本在脚本修改后,window域里面的全部数据都已经清空了,实在不知道要如何使用这个window.globalVar变量

/2019.8.22 凌晨/
再次更新
这种问题没人遇到吗?
如果确实没有相关IPC消息的话,也希望引擎组的朋友能给个回复,谢谢!

编辑器里不允许添加新的全局变量。你想要做的是什么功能?

抱歉目前在编辑器下,插件脚本是禁止污染 window 的。文档里说的是运行时,通常插件脚本在运行时才会生效,这个我们后续会补充一下文档。

组件实际需求会比较复杂,我把核心的需求提炼一下:
假设我有个组件,里面有个string字串,该字串传递了一个配置ID。现在我希望能通过这个配置ID可以找到一系列数据,然后通过这一系列数据来初始化我的自定义组件。
在编辑器环境下,该组件所需要的数据在两个条件下会被重置:
1.scene:ready 或 脚本编译完毕
2.asset-db:asset-changed
在运行时,只要保证运行该组件前成功加载了配置数据,即可使组件正确运行

/华丽的分割线/

接下来概括一下问题:
如果自定义组件的代码在编辑状态下可以运行,那么如果该组件所依赖的数据是资源配置而不是代码,就会存在编辑状态下无法获得数据的问题。
解决该问题也有几种方法,比如:
1.if (CC_EDITOR && 未加载数据) { 加载数据 }
2.菜单栏里加入一个选项,点击选项加载数据
unity写的插件也遇到了相同问题, unity提供了一种方法可以在编译完毕后执行某段函数。
creator环境下现在暂时用第一种方法解决掉了问题,希望能有更优美的手段解决问题。
感谢关注!

1赞

你好,我不太明白的是,获取数据时,直接获取就好了,跟运行时一样,就算重置完你也可以随便获取你想要的数据啊?为什么要获得重置前的数据?