
如图我有一个base.proto 协议文件,我同时放到项目根目录和 assets目录了,但是就是加载不了, 提示如下图:

对cocos creator 心态开始越来越崩溃了
这个好像是你自己用的不对,proto协议文件你应该编译出js或ts来用怎么编译导出问百度教程一大堆,其次你如果还是要加载proto文件那么你应该自定义资源加载解析方式详情可以看看文档 Cocos Creator 3.8 手册 - 下载与解析
谢谢回复,原本使用pbjs方式是可以的,运行很好的;后来基于其他问题,需要使用proto文件。我想研究下你说到的自定义资源加载解析
proto也是可以的,protobuf内部是基于文件路径规则(fetch)来加载proto,这放在Creator里面当然水土不服(assets下面的资源都会被序列化命名)
- 建议放resources下面,当成文本形式加载,这样得到一个cc.TextAsset资源
- 如果你有多个proto,把proto路径当key,proto文件字符串内容当value保存到Map,如protoContentMap
- 覆盖protobufjs内部的fetch
let protobuf = require("protobufjs");
protobuf.Util.fetch = (path, callback) => {
if (callback && typeof callback != 'function') {
callback = null;
}
// console.log("protobuf.Util.fetch ",path)
if ( protoContentMap.size < 1) {
throw new Error(`_protoContentMap is not found!`)
} else {
let content = protoContentMap.get(path);
if (!content) {
throw new Error(`${path} is not found!`)
}
if (callback) {
callback(content);
} else {
return content;
}
}
}
有问题就去看对于的官方文档(资源加载)介绍,比发牢骚管用