Unity - คู่มือ: Play Asset Delivery (2023)

  • คู่มือผู้ใช้ Unity (2019.4 LTS)
  • การพัฒนาแพลตฟอร์ม
  • แอนดรอยด์
  • สร้างแอพสำหรับ Android
  • เล่นการส่งมอบเนื้อหา

รองรับไฟล์ขยาย APK (OBB)

การแพตช์แอปเพื่อการพัฒนาซ้ำอย่างรวดเร็ว

Play Asset Delivery (PAD) เป็นคุณลักษณะของ Google Play Store ที่คุณสามารถใช้เพื่อส่งแอปพลิเคชันที่มีขนาดใหญ่กว่า 150MB แทนที่จะใช้ไฟล์ขยาย APK (OBB)ในการจัดเก็บทรัพย์สินเพิ่มเติม (เช่น พื้นผิว เสียง และตาข่าย) PAD จะใช้ชุดทรัพย์สิน Google โฮสต์และให้บริการชุดเนื้อหาบน Google Play ซึ่งหมายความว่าคุณไม่จำเป็นต้องสร้างเครือข่ายการส่งเนื้อหาเพื่อส่งทรัพยากรแอปพลิเคชันไปยังผู้ใช้ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ PAD โปรดดูที่ Androidเล่นการส่งมอบเนื้อหา.

สำคัญ: PAD ใช้ได้เฉพาะกับ Google Play Store หากคุณมีแอปพลิเคชันขนาดใหญ่และต้องการสนับสนุนบริการเผยแพร่ดิจิทัลอื่นๆ ให้ใช้ไฟล์ขยาย APK (OBB).

ความต้องการ

พธม.ต้องการใช้โครงการของคุณกราเดิลระบบบิลด์ Android ที่ทำให้กระบวนการบิลด์หลาย ๆ อย่างเป็นไปโดยอัตโนมัติ การทำงานอัตโนมัตินี้หมายความว่าข้อผิดพลาดในบิลด์ทั่วไปจำนวนมากมีโอกาสเกิดขึ้นน้อยลงข้อมูลเพิ่มเติม
ดูในอภิธานศัพท์
เวอร์ชัน 6.1.1 หรือสูงกว่าและ Androidกราเดิลปลั๊กอินเวอร์ชัน 4.0.1 หรือสูงกว่า

ส่วนนี้อธิบายวิธีการติดตั้ง Gradle เวอร์ชัน 6.1.1 และใช้ Android Gradle Plugin เวอร์ชัน 4.0.1 หากคุณต้องการใช้ Gradle หรือ Android Gradle Plugin เวอร์ชั่นอื่น ตรวจสอบให้แน่ใจว่าพวกมันเข้ากันได้ สำหรับข้อมูลความเข้ากันได้ โปรดดูที่อัปเกรด Gradle.

รุ่น Gradle

เวอร์ชัน Gradle ที่ Unity 2019.4 มอบให้ไม่เป็นไปตามข้อกำหนดของ PAD ซึ่งหมายความว่าคุณต้องติดตั้ง Gradle เวอร์ชัน 6.1.1 หรือสูงกว่าด้วยตนเอง เพื่อทำสิ่งนี้:

  1. ดาวน์โหลด Gradle เวอร์ชัน 6.1.1 จากgradle.org.
  2. แตกไฟล์
  3. ตั้งค่าพาธ gradle ของ Unity ไปยังไดเร็กทอรีที่คุณแตกไฟล์ เพื่อทำสิ่งนี้:
    1. เปิดหน้าต่างการตั้งค่า:แก้ไข>การตั้งค่า(แมคโอเอส:ความสามัคคี>การตั้งค่า) และเลือกเครื่องมือภายนอกแท็บ
    2. ปิดการใช้งานGradle ติดตั้งด้วย Unity.
    3. คลิกเรียกดูและเลือกไดเร็กทอรีที่คุณแตกไฟล์ไป

เวอร์ชันปลั๊กอิน Android Gradle

หากโครงการของคุณใช้ PAD และคุณไม่ได้เปิดใช้งานเทมเพลต Gradle ฐานที่กำหนดเองในการตั้งค่าผู้เล่นการตั้งค่าที่ให้คุณตั้งค่าตัวเลือกต่างๆ เฉพาะผู้เล่นสำหรับเกมสุดท้ายที่สร้างโดย Unityข้อมูลเพิ่มเติม
ดูในอภิธานศัพท์
, Unity จะใช้ Android Gradle Plugin เวอร์ชันที่เข้ากันได้กับ PAD โดยอัตโนมัติ หากคุณเปิดใช้งานเทมเพลต Gradle ฐานที่กำหนดเองคุณต้องตั้งค่าเวอร์ชัน Android Gradle Plugin ที่เข้ากันได้กับ PAD ในของคุณไล่ระดับสีไฟล์. เพื่อทำสิ่งนี้:

  1. เปิดโครงการของคุณกำหนดเองไล่ระดับสีไฟล์. หากคุณเปิดใช้งานเทมเพลต Gradle ฐานที่กำหนดเองเส้นทางไปยังไฟล์นี้ปรากฏใต้ชื่อคุณสมบัติ
  2. ค้นหาบรรทัดที่ขึ้นต้นด้วยclasspath 'com.android.tools.build:gradle:'และตั้งค่าหมายเลขเวอร์ชันที่ส่วนท้ายของบรรทัดนั้นเป็น4.0.1.

การใช้ Play Asset Delivery

หากต้องการใช้ Play Asset Delivery คุณต้องตั้งค่าโปรเจ็กต์เพื่อสร้างAndroid App Bundleและแยกไบนารีของแอปพลิเคชัน

ในการกำหนดค่า Unity เพื่อสร้าง Android App Bundle:

  1. เปิดการตั้งค่าการสร้าง (เมนู:ไฟล์>สร้างการตั้งค่า).
  2. ในแพลตฟอร์ม, เลือกแอนดรอยด์.
  3. ถ้าโครงการส่งออกเปิดใช้งาน, เปิดใช้งานส่งออกสำหรับ App Bundle. มิฉะนั้นให้เปิดใช้งานสร้าง App Bundle (Google Play).

ในการกำหนดค่า Unity ให้แยกไบนารีของแอปพลิเคชัน:

  1. เปิดการตั้งค่าผู้เล่น (เมนู:แก้ไข>การตั้งค่าโครงการจากนั้นเลือกผู้เล่น).
  2. เลือกแท็บการตั้งค่า Android และเปิดการตั้งค่าการเผยแพร่ส่วน.
  3. เปิดใช้งานแยกแอปพลิเคชันไบนารี.

ตอนนี้เมื่อคุณสร้างแอปพลิเคชัน Unity จะสร้าง Android App Bundle ที่มีแอปพลิเคชันของคุณแยกเป็นโมดูลฐานและชุดทรัพย์สิน

  • โมดูลพื้นฐาน: มีไฟล์เรียกทำงาน (Java และเนทีฟ)ปลั๊กอินชุดโค้ดที่สร้างขึ้นภายนอก Unity ที่สร้างฟังก์ชันการทำงานใน Unity มีปลั๊กอินสองชนิดที่คุณใช้ใน Unity ได้: ปลั๊กอินที่มีการจัดการ (ชุดประกอบ .NET ที่มีการจัดการที่สร้างขึ้นด้วยเครื่องมืออย่าง Visual Studio) และปลั๊กอินเนทีฟ (ไลบรารีโค้ดเนทีฟเฉพาะแพลตฟอร์ม)ข้อมูลเพิ่มเติม
    ดูในอภิธานศัพท์
    ,สคริปต์โค้ดบางส่วนที่ให้คุณสร้างส่วนประกอบของคุณเอง ทริกเกอร์เหตุการณ์ในเกม แก้ไขคุณสมบัติของส่วนประกอบเมื่อเวลาผ่านไป และตอบสนองต่อการป้อนข้อมูลของผู้ใช้ในแบบที่คุณต้องการข้อมูลเพิ่มเติม
    ดูในอภิธานศัพท์
    และสินทรัพย์ในครั้งแรกฉากฉากประกอบด้วยสภาพแวดล้อมและเมนูของเกมของคุณ คิดว่าแต่ละไฟล์ฉากที่ไม่ซ้ำกันเป็นระดับที่ไม่ซ้ำกัน ในแต่ละฉาก คุณจะวางสภาพแวดล้อม อุปสรรค และของตกแต่ง โดยพื้นฐานแล้วการออกแบบและสร้างเกมของคุณเป็นชิ้นๆข้อมูลเพิ่มเติม
    ดูในอภิธานศัพท์
    . ครั้งแรกฉากคือฉากที่มีสร้างดัชนีจาก 0
  • ชุดเนื้อหา: มีทุกอย่างอื่น รวมถึงฉากที่เหลือ ทรัพยากร และเนื้อหาการสตรีม สำหรับข้อมูลเพิ่มเติมเกี่ยวกับชุดสินทรัพย์ที่ Unity สร้างขึ้นในขณะสร้าง โปรดดูที่ชุดสินทรัพย์ที่สร้างขึ้น.

นอกจากชุดเนื้อหาที่ Unity สร้างขึ้นโดยอัตโนมัติแล้ว คุณยังสามารถสร้างชุดเนื้อหาของคุณเองได้อีกด้วย สิ่งนี้มีประโยชน์เมื่อคุณต้องการควบคุมว่าชุดเนื้อหาประกอบด้วยอะไรบ้าง Unity เพิ่มชุดเนื้อหาที่คุณกำหนดเองไปยัง Android App Bundle สุดท้าย สำหรับข้อมูลเพิ่มเติมเกี่ยวกับชุดเนื้อหาแบบกำหนดเองและวิธีตั้งค่า โปรดดูที่ชุดเนื้อหาที่กำหนดเอง.

ชุดสินทรัพย์ที่สร้างขึ้น

ชุดสินทรัพย์มีขีด จำกัด ขนาดการดาวน์โหลด. ด้วยเหตุนี้ Unity จึงเปลี่ยนวิธีสร้างชุดสินทรัพย์โดยขึ้นอยู่กับขนาดของสินทรัพย์เพิ่มเติมของคุณ:

  • หากเนื้อหาเพิ่มเติมใช้พื้นที่จัดเก็บน้อยกว่า 1GB Unity จะรวมทุกอย่างไว้ในชุดเนื้อหาเดียวด้วยเวลาติดตั้ง โหมดการจัดส่ง. หากคุณไม่ได้สร้างใดๆชุดเนื้อหาที่กำหนดเองซึ่งหมายความว่าอุปกรณ์จะดาวน์โหลดชุดเนื้อหาเป็นส่วนหนึ่งของการติดตั้งแอปพลิเคชัน และเมื่อผู้ใช้เปิดแอปพลิเคชันครั้งแรก เนื้อหาทั้งหมดจะพร้อมใช้งาน
  • หากเนื้อหาเพิ่มเติมใช้พื้นที่เก็บข้อมูลมากกว่า 1GB Unity packสตรีมเนื้อหาลงในชุดสินทรัพย์หนึ่งชุดและบรรจุสินทรัพย์เพิ่มเติมอื่นๆ ทั้งหมดลงในชุดสินทรัพย์อื่น สามัคคีกำหนดให้เวลาติดตั้งโหมดการจัดส่งไปยังชุดเนื้อหาที่ใหญ่กว่าและกำหนดติดตามอย่างรวดเร็วโหมดการจัดส่งไปยังอันที่เล็กกว่า

บันทึก: หากชุดเนื้อหาเหล่านี้มีขนาดใหญ่กว่าขีดจำกัดการอัปโหลดที่ Google Play Store อนุญาต Unity จะแสดงคำเตือนแต่ไม่ทำให้การสร้างล้มเหลว นอกจากนี้ Unity จะตรวจสอบขนาดของชุดเนื้อหาทีละรายการและไม่ทำการตรวจสอบขนาดสำหรับชุดเนื้อหาที่กำหนดเอง ซึ่งหมายความว่า หากการรวมกันของชุดเนื้อหาที่กำหนดเองและชุดเนื้อหาที่ Unity สร้างขึ้นมีขนาดใหญ่เกินไปสำหรับ Google Play Store Unity จะไม่แสดงคำเตือนหรือข้อผิดพลาด

สำหรับชุดเนื้อหาที่ Unity สร้างขึ้นโดยอัตโนมัติ Unity ไม่รองรับการเปลี่ยนแปลงโหมดการจัดส่ง. หากคุณต้องการเปลี่ยนโหมดการจัดส่งของชุดเนื้อหา ให้สร้างชุดเนื้อหาแบบกำหนดเองด้วยเนื้อหาของคุณ

การจัดการชุดสินทรัพย์ในขณะรันไทม์

สามัคคีให้APIเพื่อจัดการชุดสินทรัพย์ในขณะรันไทม์ พวกเขาใช้ PlayCore API ของ Google ซึ่งหมายความว่ามีข้อจำกัดเช่นเดียวกับ PlayCore และไม่สามารถจัดการได้เวลาติดตั้งชุดสินทรัพย์ การใช้ PlayCore API ยังหมายความว่าแอปพลิเคชันของคุณต้องใช้เพลย์คอร์เสียบเข้าไป. หากโปรเจกต์ของคุณมีชุดเนื้อหา ไม่ว่าจะเป็นชุดเนื้อหาแบบกำหนดเองหรือชุดเนื้อหาที่สร้างโดย Unity Unity จะเพิ่ม PlayCore โดยอัตโนมัติการพึ่งพา
ดูในอภิธานศัพท์
ไปยังรายการของแอปพลิเคชัน

วิธีที่คุณดาวน์โหลดชุดเนื้อหาและเข้าถึงเนื้อหานั้นขึ้นอยู่กับโหมดการนำส่งชุดเนื้อหา มีโหมดการนำส่งชุดเนื้อหาสามโหมด:

  • เวลาติดตั้ง: Google Play ดาวน์โหลดโดยอัตโนมัติเวลาติดตั้งชุดสินทรัพย์เมื่ออุปกรณ์ติดตั้งแอปพลิเคชัน Google Play ถือว่าชุดเนื้อหาเหล่านี้เป็นส่วนหนึ่งของแอปพลิเคชันพื้นฐาน และผู้ใช้ปลายทางไม่สามารถถอนการติดตั้งโดยไม่ถอนการติดตั้งแอปพลิเคชันทั้งหมด PlayCore API ไม่รองรับเวลาติดตั้งชุดสินทรัพย์ ซึ่งหมายความว่าคุณไม่สามารถตรวจสอบสถานะ ขอดาวน์โหลด หรือลบออกได้เวลาติดตั้งชุดสินทรัพย์ คุณไม่สามารถเข้าถึงเนื้อหาภายในชุดเนื้อหาเหล่านี้ได้โดยตรง ยกเว้นการสตรีมเนื้อหาที่สร้างโดย Unityเวลาติดตั้งชุดสินทรัพย์ ในการเข้าถึงเนื้อหาการสตรีม ให้ใช้แอ็พพลิเคชันสตรีมมิ่งAssetsPathเพื่อรับเส้นทางไปยังตำแหน่งเนื้อหาการสตรีม จากนั้นใช้UnityWebRequestเพื่อเข้าถึงเนื้อหาในเส้นทางนั้น หากคุณสร้างชุดเนื้อหาแบบกำหนดเอง คุณจะไม่สามารถเข้าถึงเนื้อหาภายในโดยใช้ API ไฟล์มาตรฐาน ให้ใช้แทนAPI ตัวจัดการสินทรัพย์ของ Android.
  • ติดตามอย่างรวดเร็ว: Google Play เริ่มดาวน์โหลดโดยอัตโนมัติติดตามอย่างรวดเร็วชุดสินทรัพย์หลังจากติดตั้งแอปพลิเคชัน อย่างไรก็ตาม อาจไม่ใช่ทั้งหมดติดตามอย่างรวดเร็วชุดสินทรัพย์พร้อมใช้งานในครั้งแรกที่เปิดตัวแอปพลิเคชัน เพื่อตรวจสอบสถานะและดาวน์โหลดติดตามอย่างรวดเร็วชุดสินทรัพย์ ดูด้านล่าง
  • ตามความต้องการ: Google Play ไม่ดาวน์โหลดโดยอัตโนมัติตามความต้องการชุดสินทรัพย์ คุณต้องเริ่มการดาวน์โหลดด้วยตนเอง สำหรับข้อมูลเกี่ยวกับวิธีการดำเนินการนี้ โปรดดูด้านล่าง

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับโหมดการจัดส่ง โปรดดูที่โหมดการจัดส่ง.

หากแอปพลิเคชันของคุณใช้ติดตามอย่างรวดเร็วหรือตามความต้องการชุดสินทรัพย์ อุปกรณ์ต้องดาวน์โหลดชุดสินทรัพย์เหล่านี้ก่อนที่แอปพลิเคชันจะสามารถเข้าถึงสินทรัพย์ภายในได้ หากต้องการตรวจสอบสถานะของชุดสินทรัพย์และดาวน์โหลดหากไม่ได้อยู่ในอุปกรณ์ ก่อนอื่นคุณต้องทราบชื่อของแต่ละชุดสินทรัพย์ หากต้องการทราบชื่อชุดเนื้อหาที่สร้างโดย Unity ให้โทรAndroidAssetPacks.GetCoreUnityAssetPackNames. ไม่มี API รันไทม์เพื่อรับชื่อชุดเนื้อหาที่กำหนดเองดังนั้นคุณต้องติดตามพวกเขาด้วยตัวคุณเอง คุณตั้งชื่อชุดเนื้อหาแบบกำหนดเองในเวลาที่สร้าง เป็นชื่อของไดเร็กทอรี

หลังจากที่คุณมีชื่อชุดสินทรัพย์ของคุณแล้ว หากต้องการตรวจสอบสถานะของชุดสินทรัพย์แต่ละรายการ ให้โทรAndroidAssetPacks.GetAssetPackStateAsyncส่งผ่านชื่อชุดสินทรัพย์ ซึ่งจะส่งคืนสถานะของชุดเนื้อหาที่คุณค้นหา และคุณสามารถใช้ผลลัพธ์เพื่อกำหนดว่าคุณจำเป็นต้องดาวน์โหลดชุดเนื้อหาหรือไม่ หากคุณต้องการสอบถามสถานะของชุดเนื้อหาที่สร้างโดย Unity ทุกชุดอย่างรวดเร็ว คุณสามารถใช้AndroidAssetPacks.coreUnityAssetPacks ดาวน์โหลดแล้ว. สิ่งนี้มีประโยชน์เพราะคุณต้องแน่ใจว่าชุดเนื้อหาทั้งหมดที่สร้างโดย Unity พร้อมใช้งานก่อนที่คุณจะโหลดฉากอื่นที่ไม่ใช่ฉากแรก หรือพยายามเข้าถึงทรัพยากรอื่นๆ ที่ Unity จัดการ

สำหรับทุกชุดเนื้อหาที่คุณต้องดาวน์โหลด โทรAndroidAssetPacks ดาวน์โหลด AssetPackAsyncส่งผ่านชื่อชุดสินทรัพย์ ขณะที่ดาวน์โหลดชุดเนื้อหา ให้ตรวจสอบสถานะการดาวน์โหลด เนื่องจากการดาวน์โหลดอาจหยุดชั่วคราวหรือล้มเหลว มีสองวิธีในการทำเช่นนี้:

  • ตรวจสอบเป็นระยะดาวน์โหลดAssetPackAsyncOperationเช่น AndroidAssetPacks.DownloadAssetPackAsync ส่งคืน
  • ใช้รุ่นของAndroidAssetPacks ดาวน์โหลด AssetPackAsyncที่ใช้การโทรกลับเป็นพารามิเตอร์ตัวที่สอง การโทรกลับที่คุณส่งผ่านต้องใช้เวลาAndroidAssetPackInfoเป็นพารามิเตอร์ที่คุณสามารถใช้เพื่อกำหนดสถานะของการดาวน์โหลด

ชุดเนื้อหาที่กำหนดเอง

หากคุณต้องการควบคุมว่าทรัพยากรใดที่ไม่ใช่โค้ดอยู่ในชุดเนื้อหาใดชุดหนึ่ง คุณสามารถสร้างชุดชุดเนื้อหาแบบกำหนดเองได้ ไม่เหมือนกับชุดเนื้อหาที่สร้างโดย Unity คุณสามารถตั้งค่าโหมดการจัดส่งสำหรับชุดเนื้อหาแบบกำหนดเองได้ หากคุณสร้างชุดเนื้อหาที่กำหนดเอง โปรดทราบว่า Google Play Store มีขนาดและจำนวนจำกัดสำหรับชุดเนื้อหา สำหรับข้อมูลเกี่ยวกับขีดจำกัด ดูขีดจำกัดขนาดการดาวน์โหลด.

หากต้องการสร้างชุดเนื้อหาที่กำหนดเอง ให้สร้างไดเร็กทอรีที่มีชื่อลงท้ายด้วย.androidpack. คุณสามารถวางไดเร็กทอรีนี้ไว้ที่ใดก็ได้ในไดเร็กทอรีสินทรัพย์ของโครงการหรือไดเร็กทอรีย่อยใดก็ได้ ตัวอย่างเช่น เพื่อสร้างชุดเนื้อหาที่กำหนดเองชื่อMyAssets1:

  1. ไปที่ไดเร็กทอรีที่คุณต้องการสร้างชุดเนื้อหา ซึ่งอาจเป็นได้โดยตรงสินทรัพย์หรือไดเร็กทอรีย่อย เช่นสินทรัพย์/CustomAssetPacks.
  2. สร้างไดเร็กทอรีใหม่และเรียกใช้MyAssets1.androidpack. หากต้องการเพิ่มเนื้อหาใดๆ ลงในชุดเนื้อหา ให้วางไว้ในโฟลเดอร์นี้บันทึก: Unity ไม่รวมชุดเนื้อหาเปล่าในงานสร้าง นอกจากนี้ ชื่อชุดเนื้อหาต้องขึ้นต้นด้วยตัวอักษรและประกอบด้วยอักขระภาษาอังกฤษและตัวเลขคละกันหรือเครื่องหมายขีดล่าง
  3. ตามค่าเริ่มต้น โหมดการจัดส่งคือตามความต้องการซึ่งหมายความว่าหากคุณไม่เปลี่ยนโหมดการนำส่ง คุณต้องดาวน์โหลดชุดเนื้อหาด้วยตนเองในขณะรันไทม์ สำหรับข้อมูลเกี่ยวกับวิธีการทำเช่นนี้ โปรดดูที่การจัดการชุดสินทรัพย์ในขณะรันไทม์.
  4. หากต้องการใช้โหมดการจัดส่งอื่น ให้สร้างไฟล์ชื่อbuild.gradleภายในไดเร็กทอรีชุดเนื้อหาที่กำหนดเอง วางสิ่งต่อไปนี้ลงในไฟล์:
ใช้ปลั๊กอิน: 'com.android.asset-pack'assetPack { packName = "MyAssets1" dynamicDelivery { deliveryType = "fast-follow" }}

ซึ่งจะตั้งค่าโหมดการจัดส่งเป็นติดตามอย่างรวดเร็วซึ่งหมายความว่า Google Play จะดาวน์โหลดชุดเนื้อหาโดยอัตโนมัติหลังจากติดตั้งแอปพลิเคชัน สำหรับข้อมูลเกี่ยวกับรูปแบบของไฟล์นี้ โปรดดูที่รวมการส่งมอบสินทรัพย์.

บันทึก: เดอะชื่อแพ็คที่คุณระบุไว้ในbuild.gradleไฟล์ควรตรงกับชื่อไดเร็กทอรีชุดเนื้อหาที่คุณตั้งไว้โดยไม่มี.androidpackส่วนขยาย.

รองรับไฟล์ขยาย APK (OBB)

การแพตช์แอปเพื่อการพัฒนาซ้ำอย่างรวดเร็ว

References

Top Articles
Latest Posts
Article information

Author: Sen. Ignacio Ratke

Last Updated: 20/10/2023

Views: 6297

Rating: 4.6 / 5 (56 voted)

Reviews: 87% of readers found this page helpful

Author information

Name: Sen. Ignacio Ratke

Birthday: 1999-05-27

Address: Apt. 171 8116 Bailey Via, Roberthaven, GA 58289

Phone: +2585395768220

Job: Lead Liaison

Hobby: Lockpicking, LARPing, Lego building, Lapidary, Macrame, Book restoration, Bodybuilding

Introduction: My name is Sen. Ignacio Ratke, I am a adventurous, zealous, outstanding, agreeable, precious, excited, gifted person who loves writing and wants to share my knowledge and understanding with you.