本文的规矩很土,但有效:每讲一个点,给你两段几乎一样的代码,只差一行,然后告诉你结果差在哪。
⚠️ 代码基于 Unity URP 风格。各引擎 API 有差异,以官方文档为准。
一、开篇:两段代码,差一个单词
下面是两个同事写的「角色淡出」效果。找找差别在哪。
1.1 小李的版本
#pragma shader_feature _ _FADE_ON1.2 小王的版本
#pragma multi_compile _ _FADE_ON除了这一行,两人的 HLSL 代码一字不差,C# 调用也一字不差:
material.EnableKeyword("_FADE_ON"); material.SetFloat("_FadeAmount", 0.3f);1.3 结果
┌──────────────────────────────────────────────────────┐ │ Editor 里 真机包里 │ ├────────────────────────────────────