36 lines
841 B
C#
36 lines
841 B
C#
using System;
|
|
using RedHotRoast;
|
|
using UnityEngine;
|
|
|
|
public static class MemoryManager
|
|
{
|
|
private static long nextCleanTime = 600; // 每 600 秒检查一次
|
|
private static long timeConfig;
|
|
|
|
|
|
public static void StartMemoryMonitor(int checkInterval = 600)
|
|
{
|
|
#if !UNITY_EDITOR
|
|
timeConfig = checkInterval;
|
|
SetTime();
|
|
#endif
|
|
}
|
|
|
|
private static void SetTime()
|
|
{
|
|
nextCleanTime = DateTimeOffset.UtcNow.ToUnixTimeSeconds() + timeConfig * 60;
|
|
}
|
|
|
|
public static void CleanMemoryMonitor()
|
|
{
|
|
if (DateTimeOffset.UtcNow.ToUnixTimeSeconds() > nextCleanTime)
|
|
{
|
|
SetTime();
|
|
|
|
Resources.UnloadUnusedAssets();
|
|
|
|
GC.Collect(); // 强制 GC,注意可能造成短暂卡顿
|
|
Debug.Log("[MemoryManager] 内存清理完成");
|
|
}
|
|
}
|
|
} |