小编Mar*_*sir的帖子

如何避免 Unity Complie 所有标准着色器变体

Graphics中添加Standard Shader —— Always Include Shaders时,Unity总是卡在sharedassets0.asset中。我知道它的统一性符合背景中的着色器变体。它大约有 60000 个变体,这使得 .apk 大小比正常大小大三倍。并且构建需要很长时间(几个小时),即使是一个空项目。如果我从列表中删除着色器,当我从资产包加载模型时,它将是粉红色的。只将标准添加到list,那么一切就ok了!有什么办法可以解决这个问题吗?请帮帮我!我用谷歌搜索了所有我能用的谷歌!

unity-game-engine

5
推荐指数
1
解决办法
1万
查看次数

这个方法的参数代码是什么意思呢?

正如标题所说,TBitArray<>没有确切的类型,那么这是否意味着该方法可以接受任何诸如TBitArray<int32>, TBitArray<float>, ... 作为参数?

FORCEINLINE bool HasAll(const TBitArray<>& Other) const
{
    FConstWordIterator ThisIterator(*this);
    FConstWordIterator OtherIterator(Other);

    while (ThisIterator || OtherIterator)
    {
        const uint32 A = ThisIterator ? ThisIterator.GetWord() : 0;
        const uint32 B = OtherIterator ? OtherIterator.GetWord() : 0;
        if ((A & B) != B)
        {
            return false;
        }

        ++ThisIterator;
        ++OtherIterator;
    }

    return true;
}
Run Code Online (Sandbox Code Playgroud)

这段代码有什么区别

template<class T>
FORCEINLINE bool HasAll(const TBitArray<T>& Other) const
Run Code Online (Sandbox Code Playgroud)

c++ templates unreal-engine4 unreal-engine5

2
推荐指数
1
解决办法
141
查看次数