2.x loadRes 加载shader返回值不对(有demo,引擎组看看)

resources 目录下新建测试shader:test.vsh,内容如下:

attribute vec4 a_position;
attribute vec2 a_texCoord;
attribute vec4 a_color;
varying vec4 v_fragmentColor;
varying vec2 v_texCoord;
void main()
{ 
    gl_Position = CC_PMatrix * a_position;
    v_fragmentColor = a_color;
    v_texCoord = a_texCoord;
}

读取代码如下:

cc.loader.loadRes('test', function(err, txt) {
            if (!err) {
                console.log(txt.text);
            }
        });

返回值调试如图:

NewProject.zip (568.4 KB)

这使得demo,麻烦引擎组看看

首先这个就错,好好看引擎源码

看清楚问题好吗?不论这个是不是错了,就算里面写个‘HelloWorld’,会影响影响读取文本的内容?

好的 我们看下

感谢大佬~

目前引擎中的cc.loader.loadRes还不支持识别vsh文件类型,但是可以通过cc.loader.load读取到它的代码数据:

var remoteUrl = cc.url.raw('resources/test.vsh');
cc.loader.load({url: remoteUrl, type: 'txt'}, function (err, txt) {
            if (!err) {
                console.log('shader content:' + txt);
            } else {
                console.log(err);
            }
        });

get~,谢谢

看代码里面好像有对应的加载对象,只是返回值不对

loadRes支持的类型枚举 在 loader.js中

找到了,在 loadNothing 函数里面,似乎可以加点log

function loadNothing () {
    return null;
}

大佬 能通过 scenen.fire 里面的 uuid 获取资源的路劲吗?

mark