图片资源在Cocos Creator 3D里面,有两种状态,一种用于3D纹理,另一种用于2D界面。如下图所示,sprite-frame用于2D,其余都用于3D。

如果你试图把一个标记为texture的图片资源拖到UI上,你会发现拖不上去。这种情况下,记得根据需求修改图片属性并保存。

麒麟子Cocos Creator 3D研究笔记一:图片资源类型和加载_3D

 对于拖拽方式的使用,只要我们选对了类型就可以了。而动态加载,则需要满足两个条件

1、动态加载的图片必须直接或者间接位于resources目录下

2、使用loader加载时,需要指定特定类型。

动态加载spriteFrame的代码

cc.loader.loadRes(url,cc.SpriteFrame,(err,spriteFrame:cc.SpriteFrame)=>{
//TODO
});

动态加载Texture的代码。

cc.loader.loadRes(url, cc.ImageAsset, (err, imageAsset: cc.ImageAsset) => {
if (imageAsset) {
let tex = imageAsset._texture;
//TODO
}
});

注意:如果是加载3D模型使用的纹理,在Cocos Creator v1.1.1里面,只能用cc.ImageAsset类型,然后获取它的_texture成员属性。直接使用cc.Texture2D是加载不到东西的。

这篇文章最重要的就是上面这个“注意”,麒麟子因为这个问题,折腾了半天。