- Creator 版本:2.4.6
- 目标平台: Android / 引擎自带调试的网页浏览器
情景需求:
针对加密资源而写了一个加密工具后,对所有的项目资源进行加密。
加密工具的说明是需要替换C:\ProgramData\Cocos\editors\Creator\2.4.6\resources\cocos2d-x\cocos\platform\文件夹下的CCFileUtils.cpp CCFileUtils.h CCImage.cpp三个文件的。
根据自定义引擎的文档中的说法,我的操作如下:
1.复制C:\ProgramData\Cocos\editors\Creator\2.4.6\resources\cocos2d-x文件夹为C:\ProgramData\Cocos\editors\Creator\2.4.6\resources\cocos2d-xDIY;
2.覆盖上述三个文件,因为不需要定制 JavaScript 引擎,所以这个步骤跳过,直接进入 定制 Cocos2d-x 引擎的步骤;
3.这里产生第一个疑问,文档原文【
2.2 初始化
下载或者克隆好 Cocos2d-x 引擎仓库后,在命令行进入引擎路径然后执行以下命令。
注意 :如果是从编辑器拷贝出来的内置 cocos2d-x 目录,可以跳过该步骤。
】
按照这里的说明,我是直接复制了cocos2d-x文件夹,按道理我是不需要执行后续的gulp init的,
我尝试了一下,cmd报错,如下:
ReferenceError: primordials is not defined
at fs.js:42:5
at req_ (D:\programs\creatorDir\2.4.6\resources\cocos2d-xDIY\node_modules\natives\index.js:143:24)
at Object.req [as require] (D:\programs\creatorDir\2.4.6\resources\cocos2d-xDIY\node_modules\natives\index.js:55:10)
at Object. (D:\programs\creatorDir\2.4.6\resources\cocos2d-xDIY\node_modules\vinyl-fs\node_modules\graceful-fs\fs.js:1:37)
at Module._compile (node:internal/modules/cjs/loader:1254:14)
at Module._extensions…js (node:internal/modules/cjs/loader:1308:10)
at Module.load (node:internal/modules/cjs/loader:1117:32)
at Module._load (node:internal/modules/cjs/loader:958:12)
at Module.require (node:internal/modules/cjs/loader:1141:19)
at require (node:internal/modules/cjs/helpers:110:18)
4.忽视上述报错直接继续下一步: 2.3 在 Cocos Creator 中配置定制版引擎,
仅仅只是设置一下文件夹,已操作。
5.文档原文【
2.4 修改引擎
接下来可以对 Cocos2d-x 引擎进行定制修改了,由于只有在 构建发布 过程中才会编译代码,所以修改引擎后可以直接打开 构建发布 面板,选择 default 或者 link 模板进行构建和编译。】
此处我使用的是link模板构建的。
我想要的需求目标:
1):在编辑器里面就能正常使用被加密的素材,显示的也是正常的图片
2):在引擎绑定的调试浏览器(常用:傲游浏览器 edge 谷歌浏览器)中调试时也能看到正常的素材
3):在代码中动态加载的素材也能在apk真机中正常的显示被加密的素材。
请问我还需要做什么操作才能达成我的目的?
自定义引擎的步骤中【 定制 Adapter】是否需要操作的?
目前的效果就是
1): 在引擎中无法正常显示拖放在编辑器面板的素材
日志窗口提示:[db-task][init] Failed to import asset D:\cocosProject\encDemo\assets\res\系统消息.png, message: Error: Input file contains unsupported image format
2):在网页中动态加载素材时提示:
The source image could not be decoded. Error: The source image could not be decoded.
3):真机apk中会自动退出且无法搜集到报错信息,猜测就是图片是加密的导致。

