Unity中有專門開啓和關閉自定義宏的位置:PlayerSettings-OtherSettings-Configuration-Scripting Define Symbols
是不行的。。。
但是,其實根本就沒有開啓和關閉,壓根就是很隨意
很多時候造成的情況是:
- 別人接手你的項目,根本玩不轉
- 每次“開啓”-“關閉“,都是讓人痛苦的過程,而大部分情況都需要測試單個shader,可以說根本沒法單側了
- 擴展性很差,需要提前規劃(這也是爲什麼後人玩不轉,後人不可能完全理解你的規劃,而且你能保證自己的規劃100%就是對的嗎??)
不要問哥爲什麼知道的
不想吐槽再多,反正一般不建議用
當然,如果你寫的是hello-world遊戲,當我沒說
我說不要用,你非要用,就給你看下怎麼用的吧
struct appdata_lightmap
{
float4 vertex : POSITION;
half2 texcoord : TEXCOORD0;
half2 texcoord1 : TEXCOORD1;
#if _FANCY_STUFF
half3 normal : NORMAL;
#if _NORMAL_MAP
half4 tangent : TANGENT;
#endif
#endif
};
明顯這個老哥,就這個shader裏面,也不止這一處用到了_NORMAL_MAP這個宏定義
所以,你需要建立一個.cginc文件
#define _NORMAL_MAP
然後,
#include "Lighting.cginc"
#include "AutoLight.cginc"
#include "ORGEInclude.cginc"
fixed4 _Color;
一個自動化構建,就很容易把這個配置,關掉了(建議打印要做好)
感受一下,沒開掛之前
還是沒開掛,只是換了下角度(和人一樣 ,換一個角度看事情,才能感受到差異,至於能不能短時間感悟,看個人造化)
開掛後