我是creator新手,目前使用的creator3.4.2,没有任何creator 1.x 2.x使用经验。
问一个最简单的问题,却难住我了,这个问题在官方手册文档里没找到解决方案;
如何不经过编辑器,用代码方式给Sprite替换指定目录下的图片,比如:resources/imgs/101.png?
- 如果放在 resources 文件夹目录下的话,你可以使用 resources.load()
// 加载 SpriteFrame,image 是 ImageAsset,spriteFrame 是 image/spriteFrame,texture 是 image/texture
resources.load("test assets/image/spriteFrame", SpriteFrame, (err, spriteFrame) => {
this.node.getComponent(Sprite).spriteFrame = spriteFrame;
});
// 加载 texture
resources.load("test assets/image/texture", Texture2D, (err: any, texture: Texture2D) => {
const spriteFrame = new SpriteFrame();
spriteFrame.texture = texture;
this.node.getComponent(Sprite).spriteFrame = spriteFrame;
});
参考的文档链接
https://docs.cocos.com/creator/manual/zh/asset/dynamic-load-resources.html?h=资源加载
- 如果放在 其他的 assetsBundle 里的话(其他的文件夹设置为 bundle), 你可以通过 assetsManager.loadBundle 加载bundle 后,再通过 bundle 来加载资源。
assetManager.loadBundle('01_graphics', (err, bundle) => {
bundle.load('xxx');
});
// 加载 Texture
bundle.load(`image/texture`, Texture2D, function (err, texture) {
console.log(texture)
});
// 加载 SpriteFrame
bundle.load(`image/spriteFrame`, SpriteFrame, function (err, spriteFrame) {
console.log(spriteFrame);
});
参考的文档链接 Asset Bundle · Cocos Creator