【已解决】]csb文件里没有保存纹理混合信息吗?

图中信息

blend相关设置,使用CSLoader:createNode读取后,并没有显示出来。

看了cocos相关的解析代码(CSParseBinary_generated.h中的struct SpriteOptions) 也没有发现相关的东西,这个功能代码是可以实现的,难道cocos里只是个摆设吗?

没有解析模拟器怎么显示出来的?能不能先看看代码!
SpriteReader 126行。
else if (name == “BlendFunc”)
{
const tinyxml2::XMLAttribute* attribute = child->FirstAttribute();

            while (attribute)
            {
                name = attribute->Name();
                std::string value = attribute->Value();
                
                if (name == "Src")
                {
                    blendFunc.src = atoi(value.c_str());
                }
                else if (name == "Dst")
                {
                    blendFunc.dst = atoi(value.c_str());
                }
                
                attribute = attribute->Next();
            }
        }

喔,我用的是quick-cocos3.5的代码,没有这段,看来要自己合代码折腾一下了 -_-

顺便纠正楼上仁兄的错误,你贴的是读json的,我说的是读csb的,所以这地方的位置是:

SpriteReader.cpp的236行

    auto f_blendFunc = options->blendFunc();
    if (f_blendFunc)
    {
        cocos2d::BlendFunc blendFunc = cocos2d::BlendFunc::ALPHA_PREMULTIPLIED;
        blendFunc.src = f_blendFunc->src();
        blendFunc.dst = f_blendFunc->dst();
        sprite->setBlendFunc(blendFunc);
    }

编辑器文档页有更新说明,可以查到混合是在哪个版本支持的。

怎么我quick-3.5版的没有你说的这段代码?

骚年 你需要下载一份新的cocos3.6或以上版本 然后替换掉quick3.5的相应地方才行