MemoryUtil.cs 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. using UnityEngine;
  2. using System;
  3. public class MemoryUtil
  4. {
  5. // /// <summary>
  6. // /// 调用回收Mono内存
  7. // /// </summary>
  8. // public static void CollectMonoMem()
  9. // {
  10. //#if !UNITY_EDITOR
  11. // System.GC.Collect();
  12. //#endif
  13. // }
  14. /// <summary>
  15. /// 调用回收Unity的资源内存
  16. /// </summary>
  17. public static void CollectNativeMem()
  18. {
  19. Resources.UnloadUnusedAssets();
  20. }
  21. /// <summary>
  22. /// 调用回收Lua代码造成的内存
  23. /// </summary>
  24. public static void CollectLuaMem()
  25. {
  26. if (LuaMgr.HasInstance())
  27. LuaMgr.Instance.LuaGC();
  28. }
  29. ///// <summary>
  30. ///// 同时调用回收不用资源以及Mono内存
  31. ///// </summary>
  32. //public static void CollectMonoAndNativeMem()
  33. //{
  34. // Resources.UnloadUnusedAssets();
  35. // CollectMonoMem();
  36. //}
  37. ///// <summary>
  38. ///// 同时调用回收Mono和Lua内存
  39. ///// </summary>
  40. //public static void CollectMonoAndLuaMem()
  41. //{
  42. // Resources.UnloadUnusedAssets();
  43. // CollectMonoMem();
  44. //}
  45. public static void ReleaseMemory()
  46. {
  47. GameMgr.Instance.CleanUnusedAssets();
  48. CollectLuaMem();
  49. }
  50. }