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

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

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

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

ดูข้อมูลเบื้องต้นเกี่ยวกับ Geospatial API สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ Geospatial API

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

หากต้องการใช้ ARCore Geospatial API โปรเจ็กต์ต้องรองรับมูลนิธิ AR และ ARCore Extensions for AR Foundation

เปิดใช้ ARCore API

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

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

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

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

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

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

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

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

  3. กำหนดค่าออบเจ็กต์เกม ARCore Extensions เพื่อใช้การกำหนดค่า ARCoreExtensionsConfig ในแผงลำดับชั้น ให้ค้นหาออบเจ็กต์เกม ARCore Extensions ที่คุณสร้างไว้เมื่อตั้งค่าส่วนขยาย ARCore ครั้งแรก และเชื่อมต่อช่อง ARCore Extensions Config กับออบเจ็กต์ที่สคริปต์ได้ ARCore ExtensionsConfig ในโฟลเดอร์ 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 อาจเพียงพอต่อการสร้างท่าทางที่มีความแม่นยำสูง

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