ผสานรวมการนำส่งเนื้อหา (Unity)

เมื่อผสานรวมการนำส่งเนื้อหา เกม Unity จะเข้าถึง Asset Pack ได้โดยใช้ Addressables หรือ AssetBundles Addressables เป็นโซลูชัน Asset Delivery ที่ใหม่กว่าและแนะนำสำหรับเกมที่สร้างด้วย Unity 2019.4 ขึ้นไป ส่วน AssetBundles รองรับ Asset Pack ใน Unity 2017.4 และ 2018.4

Unity Addressables

เกมที่สร้างด้วย Unity 2019.4 ขึ้นไปควรใช้ Addressables สำหรับการนำส่งเนื้อหาใน Android Unity มี API การนำส่งเนื้อหา Play (PAD) สำหรับจัดการ Android Asset Pack โดยใช้ Addressables ดูข้อมูลเกี่ยวกับการใช้ Addressables ได้ที่หัวข้อต่อไปนี้

ใช้ไฟล์ AssetBundle

เกมที่สร้างด้วย Unity 2017.4 และ 2018.4 สามารถใช้ไฟล์ AssetBundle สำหรับการนำส่งเนื้อหาใน Android ได้ ไฟล์ AssetBundle ของ Unity มีเนื้อหาที่เรียงลำดับซึ่งเครื่องมือ Unity สามารถโหลดได้ขณะที่แอปทำงานอยู่ ไฟล์เหล่านี้เป็นไฟล์เฉพาะแพลตฟอร์ม (เช่น สร้างขึ้นสำหรับ Android) และใช้ร่วมกับ Asset Pack ได้ โดยทั่วไปแล้ว ไฟล์ AssetBundle 1 ไฟล์จะรวมอยู่ใน Asset Pack เดียว โดย Asset Pack จะใช้ชื่อเดียวกับ AssetBundle หากต้องการความยืดหยุ่นมากขึ้นในการสร้าง Asset Pack ให้กำหนดค่า Asset Pack โดยใช้ API

ที่รันไทม์ ให้ใช้คลาส การนำส่งเนื้อหา Play สำหรับ Unity เพื่อดึงข้อมูล AssetBundle ที่จัดแพ็กเกจใน Asset Pack

สิ่งที่ต้องมีก่อน

  1. ตั้งค่าสภาพแวดล้อมในการพัฒนาซอฟต์แวร์

OpenUPM-CLI

หากติดตั้ง OpenUPM CLI ไว้ คุณจะติดตั้งรีจิสทรี OpenUPM ได้ด้วยคำสั่งต่อไปนี้

openupm add com.google.play.assetdelivery

OpenUPM

  1. เปิดการตั้งค่าเครื่องมือจัดการแพ็กเกจโดยเลือกตัวเลือกเมนู Unity Edit > Project Settings > Package Manager

  2. เพิ่ม OpenUPM เป็นรีจิสทรีที่กำหนดขอบเขตลงในหน้าต่าง Package Manager โดยทำดังนี้

    Name: package.openupm.com
    URL: https://package.openupm.com
    Scopes: com.google.external-dependency-manager
      com.google.play.common
      com.google.play.core
      com.google.play.assetdelivery
      com.google.android.appbundle
    
  3. เปิดเมนูเครื่องมือจัดการแพ็กเกจโดยเลือกตัวเลือกเมนู Unity Window > Package Manager

  4. ตั้งค่าเมนูแบบเลื่อนลงขอบเขตผู้จัดการเพื่อเลือกรีจิสทรีของฉัน

  5. เลือกแพ็กเกจปลั๊กอิน Google Play Integrity สำหรับ Unity จากรายการแพ็กเกจ แล้วกดติดตั้ง

นำเข้าจาก GitHub

  1. ดาวน์โหลด .unitypackage เวอร์ชันล่าสุดจาก GitHub

  2. นำเข้าไฟล์ .unitypackage โดยเลือกตัวเลือกเมนู Unity Assets > Import package > Custom Package แล้วนำเข้ารายการทั้งหมด

  1. สร้าง AssetBundle ใน Unity

กำหนดค่า AssetBundle โดยใช้ UI

  1. กำหนดค่า AssetBundle แต่ละรายการใน Asset Pack ดังนี้

    1. เลือก Google > Android App Bundle > Asset Delivery Settings
    2. หากต้องการเลือกโฟลเดอร์ที่มีไฟล์ AssetBundle โดยตรง ให้คลิกเพิ่มโฟลเดอร์

    ปุ่มเพิ่มโฟลเดอร์ในการตั้งค่าการนำส่งเนื้อหาใน Unity

  2. สำหรับแต่ละแพ็กเกจ ให้เปลี่ยนโหมดการนำส่งเป็นเวลาติดตั้ง ดาวน์โหลดแบบ Fast Follow หรือดาวน์โหลดแบบออนดีมานด์ แก้ไขข้อผิดพลาดหรือทรัพยากรที่ต้องใช้ แล้วปิดหน้าต่าง

    ตัวเลือกโหมดการนำส่ง Asset Delivery ต่อแพ็กเกจใน Unity

  3. เลือก Google > Build Android App Bundle เพื่อสร้าง App Bundle

  4. (ไม่บังคับ) กำหนดค่า App Bundle ให้รองรับรูปแบบการบีบอัดพื้นผิวที่แตกต่างกัน

กำหนดค่า Asset Pack โดยใช้ API

คุณสามารถกำหนดค่าการนำส่งเนื้อหาผ่านสคริปต์เครื่องมือแก้ไขซึ่งสามารถเรียกใช้เป็นส่วนหนึ่งของระบบบิลด์อัตโนมัติได้

ใช้คลาส AssetPackConfig เพื่อกำหนดชิ้นงานที่จะรวมไว้ในบิลด์ Android App Bundle รวมถึงโหมดการนำส่งชิ้นงาน Asset Pack เหล่านี้ไม่จำเป็นต้องมี AssetBundle

public void ConfigureAssetPacks {
   // Creates an AssetPackConfig with a single asset pack, named
   // examplePackName, containing all the files in path/to/exampleFolder.
   var assetPackConfig = new AssetPackConfig();
   assetPackConfig.AddAssetsFolder("examplePackName",
                                   "path/to/exampleFolder",
                                   AssetPackDeliveryMode.OnDemand);

   // Configures the build system to use the newly created assetPackConfig when
   // calling Google > Build and Run or Google > Build Android App Bundle.
   AssetPackConfigSerializer.SaveConfig(assetPackConfig);

   // Alternatively, use BundleTool.BuildBundle to build an App Bundle from script.
   BuildBundle(new buildPlayerOptions(), assetPackConfig);
}

นอกจากนี้ คุณยังใช้เมธอด BuildBundle แบบคงที่ในคลาส Bundletool เพื่อสร้าง Android App Bundle ที่มี Asset Pack ได้ด้วย โดยระบุ BuildPlayerOptions และ AssetPackConfig

ดูบทแนะนำแบบมีคำแนะนำได้ที่การใช้การนำส่งเนื้อหา Play ใน Codelab ของเกม Unity

ผสานรวมกับ Unity API ของการนำส่งเนื้อหา Play

Play Asset Delivery Unity API มีฟังก์ชันการทำงานสำหรับการขอ Asset Pack, การจัดการการดาวน์โหลด และการเข้าถึงเนื้อหา อย่าลืมเพิ่มปลั๊กอิน Unity ลงในโปรเจ็กต์ก่อน

ฟังก์ชันที่คุณใช้ใน API จะขึ้นอยู่กับวิธีสร้าง Asset Pack

หากคุณสร้าง Asset Pack โดยใช้ UI ของปลั๊กอิน ให้เลือก Asset Pack ที่กำหนดค่าปลั๊กอิน

หากคุณสร้าง Asset Pack โดยใช้ API (หรือ UI ของปลั๊กอิน) ให้เลือก Asset Pack ที่กำหนดค่า API

ขั้นตอนถัดไป

ทดสอบการนำส่งเนื้อหาในเครื่องและจาก Google Play