Google is committed to advancing racial equity for Black communities. See how.
หน้านี้ได้รับการแปลโดย Cloud Translation API
Switch to English

เพิ่ม Firebase ในโครงการ Unity

เพิ่มพลังให้เกม Unity ของคุณด้วย Firebase Unity SDK ของเรา

เพื่อแสดงให้เห็นว่าการเสียบ Firebase เข้ากับโปรเจ็กต์ Unity นั้นง่ายเพียงใดเราได้สร้างเกมตัวอย่าง MechaHamster ซึ่งคุณสามารถดาวน์โหลดได้จาก GitHub , App Store และ Google Play Store

เมชาแฮมสเตอร์ (GitHub)

เมชาแฮมสเตอร์ (App Store)

เมชาแฮมสเตอร์ (Play Store)


ดูข้อมูลเพิ่มเติมเกี่ยวกับการเพิ่มพลังให้เกมของคุณด้วย Firebase ได้ที่ หน้าเกม Firebase ของเรา

เพิ่ม Firebase ในโครงการ Unity ของคุณแล้วหรือยัง ตรวจสอบว่าคุณใช้ Firebase Unity SDK เวอร์ชัน ล่าสุด

ข้อกำหนดเบื้องต้น

  • ติดตั้ง Unity 5.3 หรือใหม่กว่า

  • (iOS เท่านั้น) ติดตั้งสิ่งต่อไปนี้:

    • Xcode 9.4.1 หรือใหม่กว่า
    • CocoaPods 1.4.0 หรือใหม่กว่า
  • ตรวจสอบให้แน่ใจว่าโครงการ Unity ของคุณตรงตามข้อกำหนดเหล่านี้:

    • สำหรับ iOS - กำหนดเป้าหมายเป็น iOS 8 หรือใหม่กว่า
    • สำหรับ Android - กำหนดเป้าหมาย API ระดับ 16 (Jelly Bean) หรือใหม่กว่า
  • ตั้งค่าอุปกรณ์จริงหรือใช้โปรแกรมจำลองเพื่อเรียกใช้แอปของคุณ

    • สำหรับ iOS - ตั้งค่าอุปกรณ์ iOS จริงหรือใช้โปรแกรมจำลอง iOS

    • สำหรับ Android - อีมูเลเตอร์ ต้องใช้ภาพจำลองกับ Google Play

หากคุณยังไม่มีโครงการ Unity และต้องการทดลองใช้ผลิตภัณฑ์ Firebase คุณสามารถดาวน์โหลด ตัวอย่างการเริ่มต้นอย่างรวดเร็ว ของเรา

ขั้นตอนที่ 1 : สร้างโครงการ Firebase

ก่อนที่คุณจะสามารถเพิ่ม Firebase ในโปรเจ็กต์ Unity คุณต้องสร้างโปรเจ็กต์ Firebase เพื่อเชื่อมต่อกับโปรเจ็กต์ Unity ไปที่ ทำความเข้าใจกับโครงการ Firebase เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับโครงการ Firebase

ขั้นตอนที่ 2 : ลงทะเบียนแอปของคุณกับ Firebase

คุณสามารถลงทะเบียนแอปหรือเกมอย่างน้อยหนึ่งรายการเพื่อเชื่อมต่อกับโครงการ Firebase ของคุณ

  1. ไปที่ คอนโซล Firebase

  2. ตรงกลางหน้าภาพรวมโครงการคลิกไอคอน Unity ( ) เพื่อเปิดเวิร์กโฟลว์การตั้งค่า

    หากคุณได้เพิ่มแอปลงในโครงการ Firebase แล้วให้คลิก เพิ่มแอป เพื่อแสดงตัวเลือกแพลตฟอร์ม

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

  4. ป้อน ID เฉพาะแพลตฟอร์มของโครงการ Unity

    • สำหรับ iOS - ป้อนรหัส iOS ของโปรเจ็กต์ Unity ของคุณในฟิลด์ รหัสบันเดิลของ iOS

    • สำหรับ Android - ป้อนรหัส Android ของโครงการ Unity ในช่อง ชื่อแพ็กเกจ Android
      ชื่อแพ็กเกจ เงื่อนไขและ รหัสแอปพลิเคชัน มักใช้แทนกันได้

  5. (ไม่บังคับ) ป้อนชื่อเล่นเฉพาะแพลตฟอร์มของโครงการ Unity
    ชื่อเล่นเหล่านี้เป็นตัวระบุความสะดวกภายในและมีคุณเท่านั้นที่มองเห็นได้ในคอนโซล Firebase

  6. คลิก ลงทะเบียนแอป

ขั้นตอนที่ 3 : เพิ่มไฟล์การกำหนดค่า Firebase

  1. รับไฟล์การกำหนดค่า Firebase เฉพาะแพลตฟอร์มของคุณในเวิร์กโฟลว์การตั้งค่าคอนโซล Firebase

    • สำหรับ iOS - คลิก ดาวน์โหลด GoogleService-Info.plist

    • สำหรับ Android - คลิก ดาวน์โหลด google-services.json

  2. เปิดหน้าต่าง โปรเจ็กต์ ของโปรเจ็กต์ Unity จากนั้นย้ายไฟล์กำหนดค่าของคุณไปที่โฟลเดอร์ Assets

  3. กลับไปที่คอนโซล Firebase ในขั้นตอนการตั้งค่าคลิก ถัดไป

ขั้นตอนที่ 4 : เพิ่ม Firebase Unity SDK

คุณสามารถเพิ่ม ผลิตภัณฑ์ Firebase ที่รองรับ ในโปรเจ็กต์ Unity โดยใช้ Unity Package Manager หรือติดตั้ง SDK ด้วยตนเองก็ได้

Unity Package Manager

หากคุณใช้ Unity 2018.4 หรือใหม่กว่าและ. NET 4.x หรือ. NET Standard 2.0 คุณสามารถติดตั้งคอมโพเนนต์ Firebase SDK โดยใช้ Unity Package Manager:

  1. เพิ่ม Game Package Registry โดย Google ในโปรเจ็กต์ Unity ของคุณ

    • หากคุณไม่เคยนำเข้า Firebase SDK และ EDM4U (ชื่ออย่างเป็นทางการว่า Play Services Resolver) มาก่อนคุณสามารถเพิ่มบล็อกต่อไปนี้ลงใน Packages/manifest.json ได้ด้วยตนเอง

      "scopedRegistries": [
        {
          "name": "Game Package Registry by Google",
          "url": "https://unityregistry-pa.googleapis.com",
          "scopes": [
            "com.google"
          ]
        }
      ]
      

      โปรดทราบว่า SDK อื่น ๆ บางอย่างเช่น Facebook SDK อาจมี EDM4U ใน . .unitypackage ตรวจสอบว่ามีโฟลเดอร์ Assets/ExternalDependencyManager หรือ Assets/PlayServicesResolver หรือไม่ หากมีโฟลเดอร์เหล่านี้ให้ลบออกก่อนติดตั้ง Firebase SDK ผ่าน Unity Package Manager

    • หากคุณต้องการย้าย SDK ที่มีอยู่หรือต้องการวิธีการโต้ตอบมากกว่านี้ให้นำเข้า External Dependency Manager for Unity (EDM4U) ล่าสุด

      Unity Package Manager Resolver จะแจ้งให้คุณเพิ่ม Game Package Registry โดย Google ลงในโปรเจ็กต์ของคุณ เลือกรีจิสทรีแล้วคลิกปุ่ม เพิ่มการลงทะเบียนที่เลือก

      • EDM4U เพิ่มรีจิสทรีให้กับ Packages/manifest.json ภายใต้โฟลเดอร์ Unity project ปัจจุบันของคุณ

      • นอกจากนี้คุณยังสามารถเพิ่มรีจิสทรีนี้ได้ในภายหลังโดยใช้ Assets > External Dependency Manager > Unity Package Manager Resolver > Add Registries หรือ Window > Google > Game Package Registry > Add To Project ตัวเลือกเมนู

  2. ย้ายข้อมูลออกจากแพ็คเกจ Firebase และ EDM4U ที่นำเข้าผ่าน . .unitypackage ไปยัง Unity Package Manager สามารถทำได้โดยหนึ่งในวิธีต่อไปนี้

    • หลังจาก EDM4U เพิ่มรีจิสทรีแล้วกล่องโต้ตอบที่ชื่อว่า "Migrating Packages" จะปรากฏขึ้น กล่องโต้ตอบนี้จะแสดงรายการแพ็คเกจทั้งหมดที่พร้อมให้ติดตั้งผ่าน Unity Package Manager เราขอแนะนำให้คุณเลือกทั้งหมดและคลิกปุ่ม ใช้

    • คุณยังสามารถเปิดกล่องโต้ตอบนี้ด้วยตนเองในภายหลังโดยใช้ Assets > External Dependency Manager > Unity Package Manager Resolver > Migrate Packages ตัวเลือกเมนู

    • คุณยังสามารถโอนย้ายทุกแพ็กเกจที่อิมพอร์ตผ่าน . .unitypackage ด้วยตัว .unitypackage ด้วยขั้นตอนต่อไปนี้

      1. นำทั้ง Firebase Unity SDK และ EDM4U ออกจากโฟลเดอร์ Assets EDM4U มีเครื่องมือในการถอนการติดตั้งแพ็คเกจที่มีการจัดการซึ่งสามารถเข้าถึงได้โดยใช้ตัวเลือกเมนู Assets > External Dependency Manager > Version Handler > Uninstall Managed Packages เลือก Firebase SDK ทั้งหมด รวมทั้ง External Dependency Manager แล้วคลิก ถอนการติดตั้งแพ็คเกจที่เลือก

        • หรือคุณสามารถลบ SDK ด้วยตนเองจากโฟลเดอร์ Assets
      2. ติดตั้งส่วนประกอบ Firebase Unity SDK โดยใช้ Unity Package Manager โดยเลือก Window > Package Manager แล้วค้นหา Firebase ส่วนประกอบ Firebase Unity SDK สามารถติดตั้งอัปเกรดและลบออกผ่านอินเทอร์เฟซนี้ได้

  3. ตอนนี้คุณสามารถสำรวจและติดตั้งคอมโพเนนต์ Firebase Unity SDK หรือแพ็คเกจของ Google โดยใช้ Unity Package Manager ได้โดยเลือก Window > Package Manager ส่วนประกอบทั้งหมดนี้สามารถติดตั้งอัปเกรดและลบออกผ่านอินเทอร์เฟซนี้ได้

การติดตั้งด้วยตนเอง

  1. ในคอนโซล Firebase ให้คลิก ดาวน์โหลด Firebase Unity SDK จากนั้นคลายซิป SDK ในที่ที่สะดวก

    • คุณสามารถดาวน์โหลด Firebase Unity SDK อีกครั้งได้ทุกเมื่อ

    • Firebase Unity SDK ไม่ใช่เฉพาะแพลตฟอร์ม

  2. ในโปรเจ็กต์ Unity ที่เปิดอยู่ให้ไปที่ Assets > Import Package > Custom Package

  3. จาก SDK ที่คลายซิปให้เลือก ผลิตภัณฑ์ Firebase ที่รองรับ ซึ่งคุณต้องการใช้ในแอปของคุณ

    เปิดใช้งานการวิเคราะห์

    • เพิ่มแพ็คเกจ Firebase สำหรับ Google Analytics: FirebaseAnalytics.unitypackage
    • เพิ่มแพ็กเกจสำหรับผลิตภัณฑ์ Firebase อื่น ๆ ที่คุณต้องการใช้ในแอปของคุณ ตัวอย่างเช่นในการใช้ Firebase Authentication และ Firebase Realtime Database:
      FirebaseAuth.unitypackage และ FirebaseDatabase.unitypackage

    ไม่ได้เปิดใช้งานการวิเคราะห์

    เพิ่มแพ็กเกจสำหรับผลิตภัณฑ์ Firebase ที่คุณต้องการใช้ในแอปของคุณ ตัวอย่างเช่นในการใช้ Firebase Authentication และ Firebase Realtime Database:
    FirebaseAuth.unitypackage และ FirebaseDatabase.unitypackage

  4. ในหน้าต่าง นำเข้า Unity Package ให้คลิก นำเข้า

  5. กลับไปที่คอนโซล Firebase ในขั้นตอนการตั้งค่าคลิก ถัดไป

ขั้นตอนที่ 5 : ยืนยันข้อกำหนดเวอร์ชันบริการ Google Play

Firebase Unity SDK สำหรับ Android ต้องใช้ บริการ Google Play ซึ่งต้องเป็นข้อมูลล่าสุดก่อนจึงจะใช้ SDK ได้

เพิ่มรหัสต่อไปนี้เมื่อเริ่มต้นแอปพลิเคชันของคุณ คุณสามารถตรวจสอบและเลือกอัปเดตบริการ Google Play เป็นเวอร์ชันที่ Firebase Unity SDK ต้องการได้ก่อนที่จะเรียกใช้วิธีการอื่นใดใน SDK

Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task => {
  var dependencyStatus = task.Result;
  if (dependencyStatus == Firebase.DependencyStatus.Available) {
    // Create and hold a reference to your FirebaseApp,
    // where app is a Firebase.FirebaseApp property of your application class.
       app = Firebase.FirebaseApp.DefaultInstance;

    // Set a flag here to indicate whether Firebase is ready to use by your app.
  } else {
    UnityEngine.Debug.LogError(System.String.Format(
      "Could not resolve all Firebase dependencies: {0}", dependencyStatus));
    // Firebase Unity SDK is not safe to use here.
  }
});

คุณทุกชุด! โครงการ Unity ของคุณได้รับการลงทะเบียนและกำหนดค่าให้ใช้ Firebase

ปัญหาที่ทราบ

ความเข้ากันได้ของ. NET เมื่อใช้ Unity 2017x และใหม่กว่า

Firebase รองรับ. NET 4.x เป็นตัวเลือกบิลด์ทดลองใน Unity 2017 และใหม่กว่า ปลั๊กอิน Firebase ใช้ส่วนประกอบของ Parse SDK เพื่อจัดเตรียมคลาส. NET 4.x บางคลาสใน. NET เวอร์ชันก่อนหน้า

ดังนั้น Firebase Unity SDK เวอร์ชัน 5.4.0 จึงมีปลั๊กอินที่เข้ากันได้กับ. NET 3.x หรือ. NET 4.x ใน dotnet3 และ dotnet4 ของ Firebase Unity SDK

หากคุณนำเข้าปลั๊กอิน Firebase ที่เข้ากันไม่ได้กับ. NET เวอร์ชันที่เปิดใช้งานในโปรเจ็กต์ของคุณคุณจะเห็นข้อผิดพลาดในการคอมไพล์จากบางประเภทในกรอบงาน. NET ที่ Parse SDK นำไปใช้

ในการแก้ไขข้อผิดพลาดในการคอมไพล์หากคุณใช้. NET 3.x:

  1. ลบหรือปิดใช้งาน DLL ต่อไปนี้สำหรับทุกแพลตฟอร์ม:
    • Parse/Plugins/dotNet45/Unity.Compat.dll
    • Parse/Plugins/dotNet45/Unity.Tasks.dll
  2. เปิดใช้งาน DLL ต่อไปนี้สำหรับทุกแพลตฟอร์ม:
    • Parse/Plugins/Unity.Compat.dll
    • Parse/Plugins/Unity.Tasks.dll

ในการแก้ไขข้อผิดพลาดในการคอมไพล์หากคุณใช้. NET 4.x:

  1. ลบหรือปิดใช้งาน DLL ต่อไปนี้สำหรับทุกแพลตฟอร์ม:
    • Parse/Plugins/Unity.Compat.dll
    • Parse/Plugins/Unity.Tasks.dll
  2. เปิดใช้งาน DLL ต่อไปนี้สำหรับทุกแพลตฟอร์ม:
    • Parse/Plugins/dotNet45/Unity.Compat.dll
    • Parse/Plugins/dotNet45/Unity.Tasks.dll

หากคุณนำเข้าปลั๊กอิน Firebase อื่น:

  • ในโปรเจ็กต์ Unity ของคุณให้ไปที่ Assets > Play Services Resolver > Version Handler > Update เพื่อเปิดใช้งาน DLL ที่ถูกต้องสำหรับโปรเจ็กต์ของคุณ

Unity 2017.1 การคอมไพล์ IL2CPP ในโครงการ. NET 4.x

Firebase รองรับ. NET 4.x เป็นตัวเลือกบิลด์ทดลองใน Unity 2017 และใหม่กว่า ปลั๊กอิน Firebase ใช้ส่วนประกอบของ Parse SDK เพื่อจัดเตรียมคลาส. NET 4.x บางคลาสใน. NET เวอร์ชันก่อนหน้า

ดังนั้น Firebase Unity SDK เวอร์ชัน 5.4.0 ขึ้นไปจึงจัดเตรียมประเภทการส่งต่อ DLL ซึ่งส่งต่อประเภทการแยกวิเคราะห์ (ตัวอย่างเช่นการแยกวิเคราะห์การนำ System.Threading.Tasks.Task ) ไปยังกรอบงาน. NET น่าเสียดายที่ IL2CPP (ทรานส์ไพเลอร์ที่แปลง C # เป็น C ++) ที่จัดส่งใน Unity 2017.1.x ประมวลผลประเภทการส่งต่อ DLL ไม่ถูกต้องซึ่งส่งผลให้เกิดข้อผิดพลาดในการสร้างที่มีลักษณะดังต่อไปนี้:

Fatal error in Unity CIL Linker Mono.Cecil.ResolutionException: Failed to
resolve System.Threading.Tasks.TaskCompletionSource`1<T>

ขณะนี้ไม่มีวิธีแก้ปัญหาสำหรับข้อผิดพลาดการสร้าง. NET 4.x IL2CPP ใน Unity 2017.1 ดังนั้นคุณต้องอัปเกรดเป็น Unity 2017.2 หรือใหม่กว่าเพื่อใช้. NET 4.x ในโปรเจ็กต์ที่คอมไพล์ด้วย IL2CPP

Unity 2017.2 ระบบเครือข่าย

ฐานข้อมูลเรียลไทม์ Firebase สร้างการเชื่อมต่อเครือข่าย TLS โดยใช้สแต็กเครือข่าย. NET ฟังก์ชัน TLS ใช้งานไม่ได้ใน Unity 2017.2 เมื่อใช้. NET 4.6 ทำให้ปลั๊กอินฐานข้อมูลแบบเรียลไทม์ล้มเหลวในตัวแก้ไขและบนเดสก์ท็อป

ไม่มีวิธีแก้ปัญหาสำหรับปัญหานี้ดังนั้นคุณต้องใช้ Unity เวอร์ชันอื่นเช่นเวอร์ชัน 2017.1 หรือ 2017.3

ไม่มีไฟล์กำหนดค่า Firebase Android ใน Unity 2020

เพื่อรองรับเวอร์ชันของ Unity ที่ไม่มีความสามารถในการปรับแต่งบิวด์ Gradle เครื่องมือแก้ไข Firebase จะสร้าง Assets/Plugins/Android/Firebase/res/values/google-services.xml เป็นทรัพยากร Android เพื่อบรรจุลงใน บิวด์ Android เพื่อให้ Firebase SDK สามารถใช้เพื่อเริ่มต้นอินสแตนซ์ FirebaseApp เริ่มต้น

ใน Unity 2020 ทรัพยากร Android ทั้งหมดจะต้องอยู่ในไดเร็กทอรีที่มีคำต่อท้าย .androidlib หากโครงการของคุณใช้ Firebase SDK ที่สร้างไดเรกทอรี Assets/Plugins/Android/Firebase ให้เปลี่ยนชื่อเป็น Assets/Plugins/Android/Firebase.androidlib ตรวจสอบให้แน่ใจว่ามี AndroidManifest.xml , project.properties และ res/values/google-services.xml

ความขัดแย้งในการติดตั้งเมื่อใช้ Unity Package Manager

สามารถติดตั้งแพ็คเกจจากแหล่งต่างๆได้ ตัวอย่างเช่น External Dependency Manager for Unity ( เรียก สั้น ๆ ว่า EDM4U ก่อนหน้านี้เรียกว่า Play Services Resolver หรือ Unity Jar Resolver) โดยวิธีใดวิธีหนึ่งดังต่อไปนี้

  • การนำเข้า External Dependency Manager .unitypackage
  • การนำเข้า Firebase SDK หรือ SDK อื่น ๆ ที่มี EDM4U ใน . .unitypackage
  • การติดตั้ง External Dependency Manager ผ่าน Unity Package Manager
  • การติดตั้ง Firebase SDK หรือ SDK อื่น ๆ ซึ่งตั้งค่า EDM4U เป็นการอ้างอิงผ่าน Unity Package Manager

เมื่อ EDM4U มีการติดตั้งผ่าน .unitypackage และผ่าน ความสามัคคีแพคเกจผู้จัดการ ในเวลาเดียวกันมีความขัดแย้งในการติดตั้งและเอกภาพอาจแสดงข้อผิดพลาดเกี่ยวกับความขัดแย้งหรือความขัดแย้ง GUID สัญลักษณ์ ขณะนี้ EDM4U ไม่ได้เสนอวิธีแก้ปัญหาสำหรับสถานการณ์ดังกล่าว เมื่อสิ่งนี้เกิดขึ้นนี่คือวิธีแก้ปัญหา:

  • หากคุณเคยย้าย Firebase และ EDM4U ไปยัง Unity Package Manager มาก่อนและคุณนำเข้า SDK อื่นที่มี EDM4U ใน . .unitypackage เช่น Google Ads หรือ Facebook SDK คุณสามารถลบโฟลเดอร์ Assets/ExternalDependencyManager และ / หรือ Assets/PlayServicesResolver
  • หากคุณติดตั้ง EDM4U โดยไม่ได้ตั้งใจผ่าน Unity Package Manager ก่อนที่จะลบออกจากโฟลเดอร์ Assets ก่อนให้ใช้ขั้นตอนต่อไปนี้เพื่อแก้ไขข้อขัดแย้ง:
    1. ลบโฟลเดอร์ Assets/ExternalDependencyManager และ / หรือ Assets/PlayServicesResolver
    2. ถอนการติดตั้งแพ็คเกจ Firebase และ EDM4U ทั้งหมด จาก Unity Package Manager
    3. ติดตั้งแพ็คเกจ Firebase และ EDM4U ที่ จำเป็นทั้งหมดอีก ครั้ง จาก UPM

ปัญหาเกี่ยวกับ Firebase ที่ติดตั้งผ่าน Unity Package Manager ใน Unity 2018

เมื่อติดตั้ง Firebase ผ่าน Unity Package Manager ใน Unity 2018 EDM4U อาจไม่สามารถค้นพบการอ้างอิงเนทีฟของ Android และ iOS บางส่วนของ Firebase เนื่องจากไฟล์ในแพ็คเกจที่ติดตั้งเป็นการอ้างอิงไม่ได้ลงทะเบียนกับ AssetDatabase ของ Unity ปัญหาที่พบบ่อยที่สุดคือไม่สามารถสร้าง FirebaseApp ใน Android ได้เนื่องจาก DllNotFoundException

ตัวอย่างเช่นเมื่อติดตั้ง Realtime Database ผ่าน Unity Package Manager ทั้ง Auth และ Firebase App (Core) จะได้รับการติดตั้งโดยอัตโนมัติตามการอ้างอิง อย่างไรก็ตาม EDM4U ไม่สามารถค้นพบ AuthDependencies.xml และ AppDependencies.xml ซึ่งมีการอ้างอิงแบบเนทีฟของ Android และ iOS เนื่องจากไม่ได้ลงทะเบียนใน AssetDatabase ใน Unity 2018 ด้วยเหตุนี้ไลบรารีเนทีฟบางส่วนอาจหายไปใน Android หรือ สร้าง iOS

วิธีแก้ปัญหาสำหรับปัญหานี้คือตรวจสอบให้แน่ใจว่าแพ็คเกจ Firebase ทั้งหมดได้รับการติดตั้งอย่างชัดเจนผ่าน Unity Package Manager ตัวอย่างเช่นหากคุณต้องการติดตั้ง Realtime Database อย่าลืมคลิก install สำหรับ Auth และ Firebase App (Core) ผ่าน Unity Package Manager ด้วย

ปัญหาเกี่ยวกับ dex เดียวขณะสร้างแอป Android

ขณะสร้างแอป Android คุณอาจพบข้อผิดพลาดในการสร้างที่เกี่ยวข้องกับการมีไฟล์ dex ไฟล์เดียว ข้อความแสดงข้อผิดพลาดมีลักษณะคล้ายกับข้อความต่อไปนี้หากโครงการของคุณได้รับการกำหนดค่าให้ใช้ระบบสร้าง Gradle

Cannot fit requested classes in a single dex file.

ไฟล์ Dalvik Executable ( .dex ) ใช้เพื่อเก็บชุดคำจำกัดความของคลาสและข้อมูลเสริมที่เกี่ยวข้องสำหรับแอปพลิเคชัน Android ( .apk ) ไฟล์ dex ไฟล์เดียว จำกัด การอ้างอิงถึง 65,536 เมธอด การสร้างจะล้มเหลวหากจำนวนวิธีการทั้งหมดจากไลบรารี Android ทั้งหมดในโปรเจ็กต์ของคุณเกินขีด จำกัด นี้

Unity เปิดตัว Minification ในปี 2017.2 ซึ่งใช้ Proguard (หรือเครื่องมืออื่น ๆ ใน Unity บางเวอร์ชัน) เพื่อดึงโค้ดที่ไม่ได้ใช้ออกซึ่งสามารถลดจำนวนเมธอดที่อ้างอิงทั้งหมดในไฟล์ dex ไฟล์เดียว สามารถพบตัวเลือกได้ใน การตั้งค่าผู้เล่น> Android> การตั้งค่าการเผยแพร่> ลด ขนาด ตัวเลือกอาจแตกต่างกันไปใน Unity เวอร์ชันอื่นดังนั้นโปรดดูเอกสาร Unity อย่างเป็นทางการ

หากจำนวนวิธีการอ้างอิงยังเกินขีด จำกัด อีกทางเลือกหนึ่งคือการเปิดใช้งาน multidex มีหลายวิธีในการบรรลุเป้าหมายนี้ใน Unity:

  • หากเปิดใช้งาน Custom Gradle Template ภายใต้ Player Settings ให้แก้ไข mainTemplate.gradle
  • หากคุณใช้ Android Studio เพื่อสร้างโครงการที่ส่งออกให้แก้ไขไฟล์ build.gradle ระดับโมดูล

สามารถดูรายละเอียดเพิ่มเติมได้ใน คู่มือผู้ใช้ multidex

ตั้งค่าเวิร์กโฟลว์เดสก์ท็อป ( เบต้า )

เมื่อคุณสร้างเกมมักจะง่ายกว่ามากในการทดสอบเกมของคุณในโปรแกรมแก้ไข Unity และบนแพลตฟอร์มเดสก์ท็อปก่อนจากนั้นจึงปรับใช้และทดสอบบนอุปกรณ์เคลื่อนที่ในการพัฒนาในภายหลัง เพื่อสนับสนุนเวิร์กโฟลว์นี้เรามี ชุดย่อยของ Firebase Unity SDK ซึ่งสามารถทำงานบน Windows, macOS, Linux และจากภายในตัวแก้ไข Unity

  1. ตั้งค่าโครงการ Unity แพลตฟอร์มเดสก์ท็อปโดยทำตามคำแนะนำเดียวกับแพลตฟอร์มมือถือ (เริ่มต้นด้วยขั้นตอน ลงทะเบียนแอปด้วย Firebase ด้านบน

  2. เรียกใช้โครงการ Unity ของคุณใน Unity IDE หรือเลือกสร้างโครงการ Unity สำหรับ เดสก์ท็อป

  3. (ไม่บังคับ) เรียกใช้โครงการ Unity ของคุณในโหมดแก้ไข

    นอกจากนี้ยังสามารถเรียกใช้ Firebase Unity SDK ในโหมดแก้ไขของ Unity ซึ่งอนุญาตให้ใช้ในปลั๊กอินตัวแก้ไข

    1. เมื่อคุณสร้าง FirebaseApp ตัวแก้ไขใช้อย่าใช้อินสแตนซ์เริ่มต้น

    2. ให้ตั้งชื่อเฉพาะให้กับการเรียก FirebaseApp.Create() แทน

      นี่เป็นสิ่งสำคัญเพื่อหลีกเลี่ยงความขัดแย้งในตัวเลือกระหว่างอินสแตนซ์ที่ใช้โดย Unity IDE และอินสแตนซ์ที่ใช้โดยโครงการ Unity ของคุณ

ผลิตภัณฑ์ Firebase ที่รองรับ

เรียนรู้เพิ่มเติมเกี่ยวกับไลบรารี Unity Firebase ใน เอกสารอ้างอิง

Firebase Unity SDK รองรับผลิตภัณฑ์ Firebase ต่อไปนี้บน iOS และ Android :

ผลิตภัณฑ์ Firebase แพ็คเกจ Unity
AdMob แจกจ่ายแยกต่างหากใน AdMob Unity Plugin
การวิเคราะห์ FirebaseAnalytics.unitypackage
การรับรองความถูกต้อง FirebaseAuth.unitypackage
Cloud Firestore (อัลฟา) FirebaseFirestore.unitypackage
ฟังก์ชันคลาวด์ FirebaseFunctions.unitypackage
การส่งข้อความบนคลาวด์ FirebaseMessaging.unitypackage
(แนะนำ) FirebaseAnalytics.unitypackage
การจัดเก็บเมฆ FirebaseStorage.unitypackage
Crashlytics FirebaseCrashlytics.unitypackage
(แนะนำ) FirebaseAnalytics.unitypackage
ลิงก์แบบไดนามิก FirebaseDynamicLinks.unitypackage
(แนะนำ) FirebaseAnalytics.unitypackage
ฐานข้อมูลเรียลไทม์ FirebaseDatabase.unitypackage
การกำหนดค่าระยะไกล FirebaseRemoteConfig.unitypackage
(แนะนำ) FirebaseAnalytics.unitypackage

ผลิตภัณฑ์ Firebase ที่รองรับ (เดสก์ท็อป)

Firebase Unity SDK มี การสนับสนุนเวิร์กโฟลว์เดสก์ท็อป สำหรับชุดย่อยของผลิตภัณฑ์ทำให้สามารถใช้บางส่วนของ Firebase ในตัวแก้ไข Unity และในเดสก์ท็อปแบบสแตนด์อโลนที่สร้างบน Windows, macOS และ Linux

ผลิตภัณฑ์ Firebase (เดสก์ท็อป) แพ็คเกจ Unity
การรับรองความถูกต้อง FirebaseAuth.unitypackage
ฟังก์ชันคลาวด์ FirebaseFunctions.unitypackage
Cloud Firestore (อัลฟา) FirebaseFirestore.unitypackage
การจัดเก็บเมฆ FirebaseStorage.unitypackage
ฐานข้อมูลเรียลไทม์ FirebaseDatabase.unitypackage
การกำหนดค่าระยะไกล FirebaseRemoteConfig.unitypackage

Firebase จัดเตรียมไลบรารีเดสก์ท็อปที่เหลือเป็นการใช้งานที่ไม่มีการใช้งาน (ไม่สามารถใช้งานได้) เพื่อความสะดวกเมื่อสร้างสำหรับ Windows, macOS และ Linux ดังนั้นคุณไม่จำเป็นต้องคอมไพล์โค้ดตามเงื่อนไขเพื่อกำหนดเป้าหมายเดสก์ท็อป

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