The Memory Advice API beta is now deprecated, and no longer recommended for use.
با Memory Advice API برای بازیهای Unity شروع کنید
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
این راهنما نحوه استفاده از افزونه Memory Advice برای Unity را برای ادغام Memory Advice API در بازی Unity خود توضیح می دهد.
الزامات
این افزونه در موارد زیر پشتیبانی می شود:
یونیتی 2019 با اندروید NDK r19
یونیتی 2020 با اندروید NDK r19
یونیتی 2021 با اندروید NDK r21
یونیتی 2022 با اندروید NDK r23
اگر از نسخههای دیگر Unity و Android NDK استفاده میکنید، ممکن است با مشکلات غیرمنتظرهای مواجه شوید. برای یافتن نسخه NDK مورد استفاده در نصب Unity، به راهنمای تنظیم محیط Android برای Unity مراجعه کنید.
افزونه را دانلود کنید
افزونه را دانلود کنید.
افزونه را وارد کنید
این افزونه یک بسته Unity است که می توانید آن را به پروژه خود وارد کنید. برای وارد کردن افزونه، روی Assets > Import Package > Custom Package کلیک کنید و فایل .unitypackage
را که دانلود کرده اید انتخاب کنید. همچنین می توانید پس از باز کردن پروژه Unity خود، روی فایل .unitypackage
دوبار کلیک کنید.
از کتابخانه استفاده کنید
در این بخش نحوه استفاده از کتابخانه توضیح داده شده است.
کتابخانه را راه اندازی کنید
وقتی برنامه شروع به کار کرد، باید کتابخانه را یک بار مقداردهی اولیه کنید. برای انجام این کار، این کد را به پروژه خود اضافه کنید:
void Start()
{
MemoryAdviceErrorCode errorCode = MemoryAdvice.Init();
if(errorCode == MemoryAdviceErrorCode.Ok)
{
Debug.Log("Memory advice init successfully");
}
}
نظرسنجی برای وضعیت حافظه
شما می توانید وضعیت حافظه برنامه خود را با نظرسنجی از کتابخانه در بازه زمانی مورد نظر خود بازیابی کنید. هر زمان که نیاز به نظرسنجی از کتابخانه دارید از تابع MemoryAdvice_getMemoryState استفاده کنید:
MemoryState memoryState = MemoryAdvice.GetMemoryState();
switch (memoryState)
{
case MemoryState.Ok:
//The application can safely allocate memory.
break;
case MemoryState.ApproachingLimit:
// The application should minimize memory allocation.
break;
case MemoryState.Critical:
// The application should free memory as soon as possible
// until the memory state changes.
break;
}
یک ناظر راه اندازی کنید
همچنین میتوانید یک Watcher راهاندازی کنید و Memory Advice API را ثبت کنید، و عملکرد تماشاگر شما زمانی فراخوانی میشود که وضعیت به حد مجاز یا بحرانی حافظه نزدیک شود (اما نه برای حالت خوب). به عنوان مثال، کد زیر یک Watcher ایجاد می کند و هر 2 ثانیه یک اعلان Memory Advice API درخواست می کند:
MemoryAdviceErrorCode errorCode = MemoryAdvice.RegisterWatcher(2000,
new MemoryWatcherDelegateListener((MemoryState state) =>
{
switch (memoryState)
{
case MemoryState.ApproachingLimit:
// The application should minimize memory allocation.
break;
case MemoryState.Critical:
// The application should free memory as soon as possible
// until the memory state changes.
break;
}
})
);
if(errorCode == MemoryAdviceErrorCode.Ok)
{
Debug.Log("Memory Advice watcher registered successfully");
}
بعدش چی
میتوانید پروژه نمونه Unity ما را دانلود کنید که یک رابط کاربری ساده برای تخصیص و آزاد کردن حافظه ارائه میدهد و از Memory Advice API برای نظارت بر وضعیت حافظه استفاده میکند.
برای منابع اضافی و مشکلات گزارش، مرور کلی را ببینید.
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-08-26 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","easyToUnderstand","thumb-up"],["مشکلم را برطرف کرد","solvedMyProblem","thumb-up"],["غیره","otherUp","thumb-up"]],[["اطلاعاتی که نیاز دارم وجود ندارد","missingTheInformationINeed","thumb-down"],["بیشازحد پیچیده/ مراحل بسیار زیاد","tooComplicatedTooManySteps","thumb-down"],["قدیمی","outOfDate","thumb-down"],["مشکل ترجمه","translationIssue","thumb-down"],["مشکل کد / نمونهها","samplesCodeIssue","thumb-down"],["غیره","otherDown","thumb-down"]],["تاریخ آخرین بهروزرسانی 2025-08-26 بهوقت ساعت هماهنگ جهانی."],[],[],null,["| **Note:** The Memory Advice API Beta is now over and the library is deprecated. [learn more about alternative memory management approaches](/games/optimize/memory-allocation).\n\nThis guide describes how to use the Memory Advice plugin for Unity to\nintegrate the\n[Memory Advice API](/games/sdk/memory-advice/overview) into\nyour Unity game.\n\nRequirements\n\nThe plugin is supported on:\n\n- Unity 2019 with Android NDK r19\n\n- Unity 2020 with Android NDK r19\n\n- Unity 2021 with Android NDK r21\n\n- Unity 2022 with Android NDK r23\n\nYou may face unexpected issues if you are using other versions of Unity and\nthe Android NDK. To find the NDK version used by your Unity installation, see\nthe\n[Android environment setup guide](https://docs.unity3d.com/Manual/android-sdksetup.html)\nfor Unity.\n\nDownload the plugin\n\nDownload [the plugin](https://dl.google.com/developers/android/games/memory_advice/memory-advice-1.0.0-beta01.unitypackage).\n\nImport the plugin\n\nThe plugin is a Unity Package that you can import into your project. To import\nthe plugin, click **Assets \\\u003e Import Package \\\u003e Custom Package** and select the\n`.unitypackage` file you downloaded. You can also double-click the\n`.unitypackage` file after opening your Unity project.\n\nUse the library\n\nThis section describes how to use the library.\n\nInitialize the library\n\nYou need to initialize the library once when the app starts.\nTo do so, add this code to your project: \n\n void Start()\n {\n MemoryAdviceErrorCode errorCode = MemoryAdvice.Init();\n if(errorCode == MemoryAdviceErrorCode.Ok)\n {\n Debug.Log(\"Memory advice init successfully\");\n }\n }\n\nPoll for memory state\n\nYou can retrieve the memory state of your app by polling the library at the\ninterval of your choosing. Use the [MemoryAdvice_getMemoryState](/reference/games/memory-advice/group/memory-advice#memoryadvice_getmemorystate)\nfunction whenever you need to poll the library: \n\n MemoryState memoryState = MemoryAdvice.GetMemoryState();\n switch (memoryState)\n {\n case MemoryState.Ok:\n //The application can safely allocate memory.\n break;\n case MemoryState.ApproachingLimit:\n // The application should minimize memory allocation.\n break;\n case MemoryState.Critical:\n // The application should free memory as soon as possible\n // until the memory state changes.\n break;\n }\n\nSet up a watcher\n\nYou can also set up [a watcher](/reference/games/memory-advice/group/memory-advice#memoryadvice_registerwatcher)\nand register the Memory Advice API, and your watcher function\nwill get called when the state is either approaching the limit or the critical\n[memory state](/reference/games/memory-advice/group/memory-advice#memoryadvice_memorystate)\n(but not for the ok state). For example, the following code creates a watcher\nand requests a Memory Advice API notification every 2 seconds: \n\n MemoryAdviceErrorCode errorCode = MemoryAdvice.RegisterWatcher(2000,\n new MemoryWatcherDelegateListener((MemoryState state) =\u003e\n {\n switch (memoryState)\n {\n case MemoryState.ApproachingLimit:\n // The application should minimize memory allocation.\n break;\n case MemoryState.Critical:\n // The application should free memory as soon as possible\n // until the memory state changes.\n break;\n }\n })\n );\n\n if(errorCode == MemoryAdviceErrorCode.Ok)\n {\n Debug.Log(\"Memory Advice watcher registered successfully\");\n }\n\nWhat's next\n\nYou can download our [Unity sample project](https://dl.google.com/developers/android/games/memory_advice/sample.zip)\nthat provides a simple UI for allocating and freeing memory, and uses\nMemory Advice API to monitor the memory state.\n\nSee the [overview](/games/sdk/memory-advice/overview) for\n[additional resources](/games/sdk/memory-advice/overview#additional_resources)\nand [reporting issues](/games/sdk/memory-advice/overview#issues_and_feedback)."]]