Unity Shader 如何配置宏

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;

 

一個自動化構建,就很容易把這個配置,關掉了(建議打印要做好)

感受一下,沒開掛之前

還是沒開掛,只是換了下角度(和人一樣 ,換一個角度看事情,才能感受到差異,至於能不能短時間感悟,看個人造化)

 

開掛後

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章