Unity3d5.6 SpriteRenderer 内存占用不断增加,apk程序奔溃的问题
SpriteMeshGenerator.TraceShape
SpriteMeshGenerator.Simplify
以上两个是Profile中SpriteRenderer的主要查看对象
2d, 3d设计游戏中子弹始终会用到SpriteRenderer
SpriteRenderer: Renders a Sprite for 2D graphics.
https://docs.unity3d.com/ScriptReference/SpriteRenderer.html
Prefab设置:
1.游戏运行中的内存消耗:
运行启动
运行一分钟后:
几分钟后:
测试在安卓里面这种每秒30-50发子弹及其以上,15分钟,1g内存的机器,app就会挂掉,
在pc上测试会越来越卡
2.修改SpriteRenderer为Plane代替:
运行起来:
几分钟后:
内存保持稳定,Gc回收很及时;
3.修改cannon(SpriteRenderer)父组件的scale 1,1,1, cannon 100, 100, boxcollider 100,100
内存一样会飚起来,一直升,,,
结论就是:在3d世界中渲染面片最好用Plane代替SpriteRenderer, 有利于内存回收,减少内存消耗;