เมื่อผสานรวมการนำส่งเนื้อหา เกม 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 ได้ที่หัวข้อต่อไปนี้
- Addressables สำหรับแพ็กเกจ Android
- คู่มือ PAD สำหรับ Unity
- เอกสารอ้างอิงของ PAD API สำหรับ Unity
ใช้ไฟล์ 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
สิ่งที่ต้องมีก่อน
- ตั้งค่าสภาพแวดล้อมในการพัฒนาซอฟต์แวร์
OpenUPM-CLI
หากติดตั้ง OpenUPM CLI ไว้ คุณจะติดตั้งรีจิสทรี OpenUPM ได้ด้วยคำสั่งต่อไปนี้
openupm add com.google.play.assetdeliveryOpenUPM
เปิดการตั้งค่าเครื่องมือจัดการแพ็กเกจโดยเลือกตัวเลือกเมนู Unity Edit > Project Settings > Package Manager
เพิ่ม 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เปิดเมนูเครื่องมือจัดการแพ็กเกจโดยเลือกตัวเลือกเมนู Unity Window > Package Manager
ตั้งค่าเมนูแบบเลื่อนลงขอบเขตผู้จัดการเพื่อเลือกรีจิสทรีของฉัน
เลือกแพ็กเกจปลั๊กอิน Google Play Integrity สำหรับ Unity จากรายการแพ็กเกจ แล้วกดติดตั้ง
นำเข้าจาก GitHub
ดาวน์โหลด
.unitypackageเวอร์ชันล่าสุดจาก GitHubนำเข้าไฟล์
.unitypackageโดยเลือกตัวเลือกเมนู Unity Assets > Import package > Custom Package แล้วนำเข้ารายการทั้งหมด
กำหนดค่า AssetBundle โดยใช้ UI
กำหนดค่า AssetBundle แต่ละรายการใน Asset Pack ดังนี้
- เลือก Google > Android App Bundle > Asset Delivery Settings
- หากต้องการเลือกโฟลเดอร์ที่มีไฟล์ AssetBundle โดยตรง ให้คลิกเพิ่มโฟลเดอร์
สำหรับแต่ละแพ็กเกจ ให้เปลี่ยนโหมดการนำส่งเป็นเวลาติดตั้ง ดาวน์โหลดแบบ Fast Follow หรือดาวน์โหลดแบบออนดีมานด์ แก้ไขข้อผิดพลาดหรือทรัพยากรที่ต้องใช้ แล้วปิดหน้าต่าง
เลือก Google > Build Android App Bundle เพื่อสร้าง App Bundle
(ไม่บังคับ) กำหนดค่า 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