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设置:
Unity3d5.6 SpriteRenderer high SpriteMeshGenerator.TraceShape app Crash
Unity3d5.6 SpriteRenderer high SpriteMeshGenerator.TraceShape app Crash

1.游戏运行中的内存消耗:
Unity3d5.6 SpriteRenderer high SpriteMeshGenerator.TraceShape app Crash
运行启动
Unity3d5.6 SpriteRenderer high SpriteMeshGenerator.TraceShape app Crash
运行一分钟后:
Unity3d5.6 SpriteRenderer high SpriteMeshGenerator.TraceShape app Crash
几分钟后:
Unity3d5.6 SpriteRenderer high SpriteMeshGenerator.TraceShape app Crash
测试在安卓里面这种每秒30-50发子弹及其以上,15分钟,1g内存的机器,app就会挂掉,
在pc上测试会越来越卡
2.修改SpriteRenderer为Plane代替:
Unity3d5.6 SpriteRenderer high SpriteMeshGenerator.TraceShape app Crash
运行起来:
Unity3d5.6 SpriteRenderer high SpriteMeshGenerator.TraceShape app Crash
几分钟后:
Unity3d5.6 SpriteRenderer high SpriteMeshGenerator.TraceShape app Crash
Unity3d5.6 SpriteRenderer high SpriteMeshGenerator.TraceShape app Crash
内存保持稳定,Gc回收很及时;

3.修改cannon(SpriteRenderer)父组件的scale 1,1,1, cannon 100, 100, boxcollider 100,100
Unity3d5.6 SpriteRenderer high SpriteMeshGenerator.TraceShape app Crash
Unity3d5.6 SpriteRenderer high SpriteMeshGenerator.TraceShape app Crash
内存一样会飚起来,一直升,,,
结论就是:在3d世界中渲染面片最好用Plane代替SpriteRenderer, 有利于内存回收,减少内存消耗;

相关文章:

  • 2021-05-22
  • 2022-12-23
  • 2021-04-12
  • 2021-12-23
  • 2022-01-27
  • 2022-02-06
  • 2021-07-17
  • 2022-02-26
猜你喜欢
  • 2021-04-11
  • 2021-06-11
  • 2021-10-14
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-28
相关资源
相似解决方案