Unity“詭異”Shader報錯(一):Internal error communicating with the shade
報錯信息基本上就是說,咱shader內(nèi)部編譯的時候出錯了(不是你語法上的問題),請附帶文件給Unity報官方錯誤吧...
????這是我不止第一次遇到這種錯誤,因為可出錯的地方太多,等官方解決是不可能的,之后碰到一次,記錄一下,希望能幫到更多人。
????(一)Texture2DArray的重新賦值
我想動態(tài)切換已經(jīng)傳進去的Texture2DArray,所以寫了函數(shù)用來切換:



(從語法上來說,沒有任何問題)
我估計由于是defaultTexArr和qEnvTest的大小格式不一致,所以第二次重新賦值的時候出錯了。
解決辦法:把第一行的默認賦值刪了,避免重復賦值。(我估計hlsl里相當于c#里默認就給null了,所以out參數(shù)不給默認賦值ok)
unity真的很奇怪,不管是inout還是out,有的時候會報錯需要賦默認值,有的時候又不報錯?,F(xiàn)在我的解決辦法是在函數(shù)尾部添加一個永遠不會為真的條件判斷,里面賦予默認值。這樣就可以過編譯(unity的渣shader語法編譯器)
標簽: