使用 renderer.material.mainTexture = texture 換圖,
在銷毀物件的時候還會殘留一個未知的物件(從Profiler看);
會讓程式執行一兩天後記憶體超過一倍,
以下為解決方法
在使用 renderer.material.mainTexture = texture; 來換texture的時候,
Unity會將這個GameObject的material在複製一個,
然後去改變這新製出來的Material的texture。
(不複製material的話,所有共用同一個material的Texture都會一併變更)
所以,改material.mainTexture時,已多創建(複製)一個物件了。
解法是在Destroy(gameObject)時,
順便也Destroy(renderer.material)就可以了~
沒有留言:
張貼留言
注意:只有此網誌的成員可以留言。