เพิ่ม Firebase ไปยังโปรเจ็กต์ Unity

เพิ่มประสิทธิภาพเกม Unity ด้วย Firebase Unity SDK

เราได้สร้างเกมตัวอย่างชื่อ MechaHamster เพื่อแสดงให้เห็นว่าการเชื่อมต่อ Firebase กับโปรเจ็กต์ Unity นั้นง่ายเพียงใด หากต้องการลองเพิ่ม Firebase ลงในเกม ให้ใช้เวอร์ชันเริ่มต้นที่มีอยู่ใน GitHub หากต้องการเวอร์ชันที่สมบูรณ์ ให้ดูเวอร์ชันใน App Store หรือ Google Play Store

MechaHamster (GitHub)

MechaHamster (App Store)

MechaHamster (Play Store)


ดูข้อมูลเพิ่มเติมเกี่ยวกับการเพิ่มประสิทธิภาพเกมด้วย Firebase ได้ที่หน้าเกม Firebase

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

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

  • ติดตั้ง Unity 2021 LTS ขึ้นไป การสนับสนุน Unity 2020 ถือว่าเลิกใช้งานแล้ว และเราจะไม่รองรับอีกต่อไปหลังจากการเปิดตัวเวอร์ชันหลักครั้งถัดไป เวอร์ชันก่อนหน้าอาจใช้งานร่วมกันได้เช่นกัน แต่จะไม่ได้รับการรองรับอย่างเต็มรูปแบบ

  • (แพลตฟอร์ม Apple เท่านั้น) ติดตั้งสิ่งต่อไปนี้

    • Xcode 13.3.1 ขึ้นไป
    • CocoaPods 1.12.0 ขึ้นไป
  • ตรวจสอบว่าโปรเจ็กต์ Unity ของคุณเป็นไปตามข้อกำหนดต่อไปนี้

    • สำหรับ iOS — กำหนดเป้าหมายเป็น iOS 13 ขึ้นไป
    • สำหรับ tvOS - กำหนดเป้าหมายเป็น tvOS 13 ขึ้นไป
    • สำหรับ Android — กำหนดเป้าหมายเป็น API ระดับ 21 (Lollipop) ขึ้นไป
  • ตั้งค่าอุปกรณ์จริงหรือใช้โปรแกรมจำลองเพื่อเรียกใช้แอป

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

    • สำหรับ Android - โปรแกรมจำลองต้องใช้ภาพโปรแกรมจำลองกับ Google Play

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

ขั้นตอนที่ 1: สร้างโปรเจ็กต์ Firebase

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

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

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

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

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

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

  3. เลือกเป้าหมายของบิลด์ในโปรเจ็กต์ Unity ที่ต้องการลงทะเบียน หรือจะเลือกลงทะเบียนทั้ง 2 เป้าหมายพร้อมกันเลยก็ได้

  4. ป้อนรหัสเฉพาะแพลตฟอร์มของโปรเจ็กต์ 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

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

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

    • SDK ของ Firebase Unity ไม่ได้เจาะจงแพลตฟอร์ม

  2. ในโปรเจ็กต์ Unity แบบเปิด ให้ไปที่เนื้อหา > นําเข้าแพ็กเกจ > แพ็กเกจที่กําหนดเอง

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

    เปิดใช้ Analytics

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

    ไม่ได้เปิดใช้ Analytics

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

  4. คลิกนำเข้า ในหน้าต่างนำเข้าแพ็กเกจ Unity

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

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

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

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

using Firebase.Extensions;
Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWithOnMainThread(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 แล้ว

แต่หากพบปัญหาในการตั้งค่า โปรดไปที่การแก้ปัญหาและคำถามที่พบบ่อยเกี่ยวกับ Unity

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

เมื่อสร้างเกม มักจะง่ายกว่ามากที่จะทดสอบเกมในโปรแกรมแก้ไขของ 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 ที่รองรับ

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

ไลบรารี Firebase ที่พร้อมใช้งานสําหรับอุปกรณ์เคลื่อนที่

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

ผลิตภัณฑ์ Firebase แพ็กเกจ Unity
AdMob เผยแพร่แยกต่างหากในAdMobปลั๊กอิน Unity
Analytics FirebaseAnalytics.unitypackage
App Check FirebaseAppCheck.unitypackage
Authentication FirebaseAuth.unitypackage
Cloud Firestore FirebaseFirestore.unitypackage
Cloud Functions FirebaseFunctions.unitypackage
Cloud Messaging FirebaseMessaging.unitypackage
(แนะนำ) FirebaseAnalytics.unitypackage
Cloud Storage FirebaseStorage.unitypackage
Crashlytics FirebaseCrashlytics.unitypackage
(แนะนำ) FirebaseAnalytics.unitypackage
Dynamic Links FirebaseDynamicLinks.unitypackage
(แนะนำ) FirebaseAnalytics.unitypackage
Realtime Database FirebaseDatabase.unitypackage
Remote Config FirebaseRemoteConfig.unitypackage
(แนะนำ) FirebaseAnalytics.unitypackage

ไลบรารี Firebase ที่พร้อมใช้งานสำหรับเดสก์ท็อป

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

ผลิตภัณฑ์ Firebase (เดสก์ท็อป) แพ็กเกจ Unity
App Check FirebaseAppCheck.unitypackage
Authentication FirebaseAuth.unitypackage
Cloud Functions FirebaseFunctions.unitypackage
Cloud Firestore FirebaseFirestore.unitypackage
Cloud Storage FirebaseStorage.unitypackage
Realtime Database FirebaseDatabase.unitypackage
Remote Config FirebaseRemoteConfig.unitypackage

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

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