คู่มือนี้อธิบายวิธีใช้ปลั๊กอินคำแนะนำเกี่ยวกับหน่วยความจำสำหรับ 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 ได้ด้วย และระบบจะเรียกใช้ฟังก์ชันตัวตรวจสอบ เมื่อสถานะเข้าใกล้ขีดจำกัดหรืออยู่ในสถานะหน่วยความจำ วิกฤต (แต่จะไม่เรียกใช้สำหรับสถานะปกติ) ตัวอย่างเช่น โค้ดต่อไปนี้จะสร้าง 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 เพื่อตรวจสอบสถานะหน่วยความจำ
ดูภาพรวมเพื่อดู แหล่งข้อมูลเพิ่มเติม และการรายงานปัญหา