เปิดใช้ Geospatial API สำหรับแอป Unity (AR Foundation) ที่กำหนดเป้าหมายเป็น Android

กำหนดการตั้งค่าของแอปเพื่อให้ใช้ Geospatial API ได้

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

โปรดทำความเข้าใจแนวคิด AR พื้นฐานและวิธีกำหนดค่าเซสชัน ARCore ก่อนดำเนินการต่อ

ดูข้อมูลเพิ่มเติมเกี่ยวกับ Geospatial API ได้ที่ข้อมูลเบื้องต้นเกี่ยวกับ Geospatial API

หากคุณเพิ่งเริ่มพัฒนาด้วย ARCore โปรดดูข้อมูลเกี่ยวกับข้อกำหนดของซอฟต์แวร์และฮาร์ดแวร์ ข้อกําหนดเบื้องต้น และข้อมูลอื่นๆ ที่เฉพาะเจาะจงสําหรับแพลตฟอร์มที่คุณใช้ในส่วนเริ่มต้นใช้งาน

หากต้องการใช้ ARCore Geospatial API โปรเจ็กต์ของคุณต้องรองรับ AR Foundation และ ARCore Extensions สำหรับ AR Foundation

เปิดใช้ ARCore API

ก่อนใช้ระบบการระบุตำแหน่งด้วยภาพ (VPS) ในแอป คุณต้องเปิดใช้ ARCore API ในโปรเจ็กต์ Google Cloud ใหม่หรือที่มีอยู่ก่อน บริการนี้มีหน้าที่รับผิดชอบในการโฮสต์ จัดเก็บ และแก้ไขหมุดยึดเชิงพื้นที่

เราขอแนะนำให้ใช้การให้สิทธิ์แบบไม่ต้องใช้คีย์ แต่ระบบก็รองรับการให้สิทธิ์ด้วยคีย์ API ด้วย

เพิ่มไลบรารีที่จําเป็นลงในแอป

หลังจากให้สิทธิ์แอปเรียก ARCore API แล้ว คุณต้องเพิ่มไลบรารีเพื่อเปิดใช้ฟีเจอร์เชิงพื้นที่ในแอป

  1. ไปที่แก้ไข > การตั้งค่าโปรเจ็กต์ > การจัดการปลั๊กอิน XR > ส่วนขยาย ARCore
  2. ในส่วนฟีเจอร์ที่ไม่บังคับ ให้เลือกเชิงพื้นที่

เปิดใช้ความสามารถด้านภูมิสารสนเทศในการกำหนดค่าเซสชัน

เมื่อเปิดใช้ฟังก์ชันการทำงานเชิงพื้นที่ในแอปแล้ว ให้เปิดใช้ความสามารถเชิงพื้นที่ในการกำหนดค่าเซสชัน AR ของแอปเพื่อให้สื่อสารกับ ARCore API ได้ โดยทำดังนี้

  1. ตรวจสอบว่าโฟลเดอร์เนื้อหาของโปรเจ็กต์มีออบเจ็กต์ ARCoreExtensionsConfig ที่ใช้สคริปต์ได้ คลิกขวาที่แผงชิ้นงาน แล้วเลือกสร้าง > XR > การกำหนดค่าส่วนขยาย ARCore เพื่อสร้างชิ้นงาน
  2. เลือกออบเจ็กต์ ARCoreExtensionsConfig ที่ใช้สคริปต์ได้ในโฟลเดอร์ Assets และตั้งค่าโหมดเชิงพื้นที่เป็นเปิดใช้

  3. กำหนดค่าออบเจ็กต์เกม ARCore Extensions เพื่อใช้การกำหนดค่า ARCoreextensionConfig ในแผงลําดับชั้น ให้ค้นหาออบเจ็กต์เกม ARCore Extensions ที่คุณสร้างเมื่อตั้งค่า ARCore Extensions เป็นครั้งแรก และเชื่อมต่อช่อง ARCore Extensions Config กับออบเจ็กต์สคริปต์ ARCoreExtensionsConfig ในโฟลเดอร์ Assets

แจ้งให้ผู้ใช้อนุญาตการใช้ข้อมูลอุปกรณ์

แอปที่ใช้ ARCore Geospatial API ต้องแสดงข้อความแจ้งให้ผู้ใช้รับทราบและอนุญาตให้ใช้ข้อมูลจากอุปกรณ์ ดูข้อมูลเพิ่มเติมได้ในข้อกำหนดด้านความเป็นส่วนตัวของผู้ใช้

ตรวจสอบความเข้ากันได้ของอุปกรณ์

อุปกรณ์ที่รองรับ ARCore บางรุ่นอาจไม่รองรับ Geospatial API ด้วย หากต้องการตรวจสอบความเข้ากันได้ของอุปกรณ์ของผู้ใช้ ให้โทรไปที่ AREarthManager.IsGeospatialModeSupported() หากผลลัพธ์คือ FeatureSupported.Unsupported อย่าพยายามกําหนดค่าเซสชัน

ขอสิทธิ์เข้าถึงตําแหน่งจากผู้ใช้ขณะรันไทม์

ส่วนขยาย ARCore จะขอสิทธิ์เข้าถึงตำแหน่งที่เหมาะสมโดยอัตโนมัติเมื่อเปิดใช้โหมดภูมิสารสนเทศเชิงพื้นที่ใน ARCoreExtensions.Update() หากผู้ใช้ไม่ให้สิทธิ์ตำแหน่งที่แน่นอน เซสชันจะกลับมาทำงานต่อไม่ได้ และระบบจะแสดงข้อผิดพลาด "ไม่ได้รับสิทธิ์" ข้อผิดพลาดนี้เป็นการสิ้นสุด และต้องมีการเริ่มต้นใหม่เพื่อทริกเกอร์คำขอสิทธิ์อีกครั้ง

ตรวจสอบความพร้อมให้บริการของข้อมูลเชิงพื้นที่ ณ ตำแหน่งปัจจุบันของอุปกรณ์

เนื่องจาก Geospatial API ใช้ VPS และ GPS ร่วมกันเพื่อระบุตำแหน่งเชิงพื้นที่ คุณจึงใช้ API ได้ตราบใดที่อุปกรณ์ระบุตำแหน่งได้ ในพื้นที่ที่ GPS มีความแม่นยำต่ำ เช่น ในพื้นที่ในอาคารและสภาพแวดล้อมในเมืองที่หนาแน่น API จะใช้การครอบคลุม VPS เพื่อสร้างท่าทางที่มีความแม่นยำสูง ภายใต้เงื่อนไขทั่วไป VPS ควรมีความแม่นยำในการระบุตำแหน่งประมาณ 5 เมตร และความแม่นยำในการหมุน 5 องศา ใช้ AREarthManager.CheckVpsAvailability() เพื่อดูว่าตำแหน่งหนึ่งๆ มีบริการ VPS หรือไม่

นอกจากนี้ คุณยังใช้ Geospatial API ในพื้นที่ที่ไม่มี VPS ครอบคลุมได้ด้วย ในสภาพแวดล้อมกลางแจ้งที่มีสิ่งกีดขวางเหนือศีรษะเพียงเล็กน้อยหรือไม่มีเลย GPS อาจเพียงพอที่จะสร้างท่าทางที่มีความแม่นยำสูง

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