【发布时间】:2018-10-29 23:03:35
【问题描述】:
如何使用自定义标准表面着色器将值动画化为目标值?
例如:
...
float targetAlpha; //Set by the property block, or a C# script
float currrentAlpha; //Used internally only.
void surf (Input IN, inout SurfaceOutputStandard o)
{
currrentAlpha = lerp(currrentAlpha, targetAlpha, unity_DeltaTime.x);
o.Alpha = currrentAlpha;
}
此代码不起作用,但应演示目标是什么:设置 targetAlpha 时,着色器将向该值淡化。
【问题讨论】:
-
我将不得不与 ShaderLab 一起讨论,看看我能用内置值做什么,但应该注意
deltaTime不会是正确的。您可以做的是设置一个属性值,然后从MonoBehavior脚本修改它。 -
forum.unity.com/threads/… 这帮助我理解了为什么我的方法不正确