The Memory Advice API beta is now deprecated, and no longer recommended for use.
เริ่มต้นใช้งาน Memory Advice API สำหรับเกม Unity
จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน
บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ
คู่มือนี้อธิบายวิธีใช้ปลั๊กอินคำแนะนำเกี่ยวกับหน่วยความจำสำหรับ Unity เพื่อผสานรวม Memory Advice API เข้ากับเกม Unity
ข้อกำหนด
ปลั๊กอินนี้ใช้ได้ใน
Unity 2019 ที่มี Android NDK r19
Unity 2020 ที่มี Android NDK r19
Unity 2021 กับ Android NDK r21
Unity 2022 กับ Android NDK r23
คุณอาจพบปัญหาที่ไม่คาดคิดหากใช้ Unity เวอร์ชันอื่นและ Android NDK หากต้องการดูเวอร์ชัน NDK ที่การติดตั้ง Unity ใช้ โปรดดู
คู่มือการตั้งค่าสภาพแวดล้อม Android
สำหรับ Unity
ดาวน์โหลดปลั๊กอิน
ดาวน์โหลดปลั๊กอิน
นำเข้าปลั๊กอิน
ปลั๊กอินเป็นแพ็กเกจ Unity ที่คุณนำเข้าไปยังโปรเจ็กต์ได้ หากต้องการนำเข้าปลั๊กอิน ให้คลิกชิ้นงาน > นำเข้าแพ็กเกจ > แพ็กเกจที่กำหนดเอง แล้วเลือกไฟล์ .unitypackage
ที่ดาวน์โหลด คุณยังดับเบิลคลิกไฟล์
.unitypackage
หลังจากเปิดโปรเจ็กต์ Unity ได้ด้วย
ใช้คลัง
ส่วนนี้จะอธิบายวิธีใช้คลัง
เริ่มต้นไลบรารี
คุณต้องเริ่มต้นใช้งานไลบรารี 1 ครั้งเมื่อแอปเริ่มทำงาน
โดยเพิ่มโค้ดนี้ลงในโปรเจ็กต์
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;
}
ตั้งค่าผู้ดู
นอกจากนี้ คุณยังตั้งค่าตัวตรวจสอบ
และลงทะเบียน Memory Advice API ได้ด้วย และระบบจะเรียกใช้ฟังก์ชันตัวตรวจสอบ
เมื่อสถานะเข้าใกล้ขีดจำกัดหรืออยู่ในสถานะหน่วยความจำ
วิกฤต (แต่จะไม่เรียกใช้สำหรับสถานะ ok) ตัวอย่างเช่น โค้ดต่อไปนี้จะสร้าง Watcher
และขอการแจ้งเตือนจาก Memory Advice API ทุกๆ 2 วินาที
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
ซึ่งมี UI ที่เรียบง่ายสำหรับการจัดสรรและปล่อยหน่วยความจำ และใช้
Memory Advice API เพื่อตรวจสอบสถานะหน่วยความจำ
ดูภาพรวมเพื่อดู
แหล่งข้อมูลเพิ่มเติม
และการรายงานปัญหา
ตัวอย่างเนื้อหาและโค้ดในหน้าเว็บนี้ขึ้นอยู่กับใบอนุญาตที่อธิบายไว้ในใบอนุญาตการใช้เนื้อหา Java และ OpenJDK เป็นเครื่องหมายการค้าหรือเครื่องหมายการค้าจดทะเบียนของ Oracle และ/หรือบริษัทในเครือ
อัปเดตล่าสุด 2025-08-26 UTC
[[["เข้าใจง่าย","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 UTC"],[],[],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)."]]