1. 程式人生 > >unity2018 shader 中 LIGHT_ATTENUATION();報錯解決方案

unity2018 shader 中 LIGHT_ATTENUATION();報錯解決方案

今天專案需要打包測試,結果在打包的時候報shader語法錯誤!

float attenuation = LIGHT_ATTENUATION(i); 這一行報 shader 語法錯誤()

查詢原因  原來專案用unity 2017 升級到 2018以後  shader 的內建函式 LIGHT_ATTENUATION(i) 

發生改變(unity2018  很蛋疼的BUG!!)

attenuation 衰減率   用新的內建函式獲取

報錯程式碼   float atten=LIGHT_ATTENUATION(i); (在unity2017中正常)

修改為   UNITY_LIGHT_ATTENUATION(atten,i,i.posWorld.xyz);  (裡面第一個引數就是你需要的得到的值,後面直接能用,不需要宣告)