描述

当应用程序在前台运行时,若 iOS 或 Android 设备通知内存不足,则会发生此事件。您可以从内存中释放非关键资源(例如,纹理或音频剪辑)以应对此情况,从而避免应用程序终止。您还可以加载此类资源的较小版本。此外,您应该将任何瞬态数据序列化为永久存储,以避免在应用程序终止时丢失数据。

此事件对应于不同平台上的以下回调:
- iOS:[UIApplicationDelegate applicationDidReceiveMemoryWarning]
- Android:onLowMemory() 和 onTrimMemory(level == TRIM_MEMORY_RUNNING_CRITICAL)

以下是处理回调的示例:

using UnityEngine;
using System.Collections;
using System.Collections.Generic;

class LowMemoryTrigger : MonoBehaviour { List<Texture2D> _textures;

private void Start() { _textures = new List<Texture2D>(); Application.lowMemory += OnLowMemory; }

private void Update() { // allocate textures until we run out of memory _textures.Add(new Texture2D(256, 256)); }

private void OnLowMemory() { // release all cached textures _textures = new List<Texture2D>(); Resources.UnloadUnusedAssets(); } }
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961