我正在移植一个自定义着色器以使其在手机上工作,因为手机内的着色器不能有 if 语句。
我尝试用?
运算符替换我的代码中的 if 语句,但我无法在 Unity 中编译而不会出现错误。我对 c# 很陌生,所以对我自己来说很明显我在这里缺少一些东西来完成这个。这里有更多经验丰富的程序员的建议吗?非常感谢大家。
// 原来的代码被注释掉了。
我还尝试将结果存储在变量中并返回,但也没有用。
/*
if (charCol.r > .8f)
{
if(_monochromatic == 1)
return float4(0, gray, 0, 1);
else
return col;
}
else
{
return col * _brightness;
}
*/
charCol.r > .8f ? (_monochromatic == 1) ? return float4(0, gray, 0, 1) : return col : return col * _brightness;
错误信息:
“自定义/着色器”中的着色器错误:语法错误:意外令牌“返回”