大家都知道,unity如果对 texture或者mesh开启了 read/write enable会增加一份拷贝在内存里。今天跟朋友讨论为何会增加,以及如何避免来着。大家都没看过unity的源码。所以都是猜测,欢迎一起讨论。
正常流程 如果
没有开启,unity从文件读取到内存后,会提交给显卡,存到显存里,然后就会释放这块内存了。同时,由于手机内存跟显存是一个,只是映射不同的地址。所以内存中只有一份。
但是当你勾选了 read/write后,说明需要从代码显示读取,同时CPU又无法访问显存。所以只能在在读取后,不销毁那块内存,供你修改。所以,你勾选后,不管你修补修改,都会留一份。同时,unity 开启了
动态批次,mesh上有动画,以及 代码里 combine都会在内存里留有一份copy。(PS 正在做实验 验证我们的猜想。不过不抱有太多希望。毕竟说不定还有其他方面会导致内存中留有一份)。