[插件开发 · 报错]
Cocos Creator 3.5.2 版本 addComponent: Failed to get class [记录+解决]
[godxkey] 自动绑定指定资源到组件代码内 | Cocos Store
报错截图如下
解决方案一
关闭 Cocos Creator 3.5.2 编辑器, 再重新打开,
目前已测试 Ctrl + R 刷新编辑器界面 (无用),
如果项目不大, 还是重启 Cocos Creator 3.5.2 编辑器来的方便
解决方案二
采取代码内预先刷新, 等一段时间后, 再加载就可以正常执行逻辑了, 参考代码如下
async function reloadTsFile(){
// asset-db
// reimport-asset
// 重新导入资源
// urlOrUUID {string} 资源的 URL 或者 UUID
// refresh-asset
// 刷新一个资源所在的 url 位置,删除资源会被销毁,新增资源会导入
// urlOrUUID {string} 资源的 URL 或者 UUID
const reloadTsFile_000=await Editor.Message.request("asset-db", "reimport-asset", "affbab09-3f8e-4c76-a3e5-a89181728a06");
const reloadTsFile_001=await Editor.Message.request("asset-db", "refresh-asset", "affbab09-3f8e-4c76-a3e5-a89181728a06");
};
// 当扩展被启动的时候执行
exports.load = function () {
reloadTsFile();
// var options = {
// name: 'binder',
// method: 'logScene',
// args: [],
// };
// Editor.Message.request('scene', 'execute-scene-script', options).then(function (version) {
// console.log("成功获取引擎版本号:", version)//cc.ENGINE_VERSION
// });
};
// 当扩展被关闭的时候执行
exports.unload = function () {
reloadTsFile();
};
PS:
- 在实际测试中, 在 Cocos Creator 3.4.0 编辑器 和 Cocos Creator 3.6.0 编辑器中, 不会有此报错的问题
- 初步猜测是 Cocos Creator 3.5.2 编辑器并没有合理刷新出 runtime-resource 资源文件所导致
- 更底层的原因就不太清楚了, 不知各位大佬可否讲解一二 ?