กำหนดการตั้งค่าของแอปเพื่อให้ใช้ Geospatial API ได้
ข้อกำหนดเบื้องต้น
ตรวจสอบว่าคุณเข้าใจแนวคิด AR พื้นฐาน และวิธีกําหนดค่าเซสชัน ARCore ก่อนดำเนินการต่อ
โปรดดู ข้อมูลเบื้องต้นเกี่ยวกับ Geospatial API สำหรับข้อมูลเพิ่มเติม เกี่ยวกับ Geospatial API
หากคุณเพิ่งเริ่มพัฒนาโดยใช้ ARCore โปรดดูการเริ่มต้นใช้งาน สำหรับข้อมูลเกี่ยวกับข้อกำหนดของซอฟต์แวร์และฮาร์ดแวร์ คุณสมบัติเบื้องต้น และ ข้อมูลอื่นๆ ที่เกี่ยวข้องกับแพลตฟอร์มที่คุณใช้
หากต้องการใช้ ARCore Geospatial API โปรเจ็กต์ของคุณต้องรองรับ มูลนิธิ AR และส่วนขยาย ARCore สำหรับมูลนิธิ AR
เปิดใช้ ARCore API
ก่อนที่จะใช้ Visual Positioning System (VPS) ในแอปของคุณ ก่อนอื่น เปิดใช้ ARCore API ในโปรเจ็กต์ Google Cloud ใหม่หรือที่มีอยู่ บริการนี้มีหน้าที่ การโฮสต์ การจัดเก็บ และการแปล Anchor ภูมิสารสนเทศ
เราขอแนะนำให้ใช้การให้สิทธิ์แบบไม่ใช้คีย์ แต่ก็รองรับการให้สิทธิ์คีย์ API ด้วย
เพิ่มไลบรารีที่จำเป็นลงในแอป
หลังจากให้สิทธิ์แอปเรียกใช้ ARCore API แล้ว คุณต้องเพิ่มไลบรารีลงใน เปิดใช้ฟีเจอร์ภูมิสารสนเทศในแอป
- ไปที่แก้ไข > การตั้งค่าโปรเจ็กต์ > การจัดการปลั๊กอิน XR > ส่วนขยาย ARCore ตรวจสอบว่าได้เลือกเปิดใช้การสนับสนุน iOS แล้ว
- ในส่วนฟีเจอร์เสริม ให้เลือกภูมิสารสนเทศ
เปิดใช้ความสามารถด้านภูมิสารสนเทศในการกำหนดค่าเซสชัน
เมื่อเปิดใช้ฟังก์ชันภูมิสารสนเทศในแอปแล้ว ให้เปิดใช้ความสามารถด้านภูมิสารสนเทศในการกำหนดค่าเซสชัน AR ของแอปเพื่อให้สื่อสารกับ ARCore API ได้
- ตรวจสอบว่าโฟลเดอร์ Assets ของโปรเจ็กต์มีออบเจ็กต์ที่สคริปต์ได้ ARCoreExpandConfig หากต้องการสร้างชิ้นงาน ให้คลิกขวาในแผงชิ้นงาน และเลือกสร้าง > XR การกำหนดค่าส่วนขยาย ARCore
เลือกออบเจ็กต์ที่สคริปต์ได้ ARCoreExtensionsConfig ในโฟลเดอร์ Assets และตั้งค่า Geospatial Mode เป็น Enabled
กำหนดค่าออบเจ็กต์เกม ARCore Extensions เพื่อใช้การกำหนดค่า ARCoreExtensionsConfig ในแผงลำดับชั้น ให้ค้นหาออบเจ็กต์เกมส่วนขยาย ARCore ที่คุณสร้างไว้เมื่อตั้งค่าส่วนขยาย ARCore เป็นครั้งแรก และเชื่อมต่อช่องการกำหนดค่าส่วนขยาย ARCore กับออบเจ็กต์ที่สคริปต์ได้ของ ARCoreExpandConfig ในโฟลเดอร์ Assets
แจ้งให้ผู้ใช้อนุญาตให้ใช้ข้อมูลของอุปกรณ์
แอปที่ใช้ ARCore Geospatial API จะต้องแสดงข้อความแจ้งแก่ผู้ใช้เพื่อ รับทราบและอนุญาตให้ใช้ข้อมูลจากอุปกรณ์ของตน โปรดดู ข้อกำหนดด้านความเป็นส่วนตัวของผู้ใช้เพิ่มเติม
ตรวจสอบความเข้ากันได้ของอุปกรณ์
อุปกรณ์บางรุ่นที่รองรับ ARCore จะรองรับ Geospatial API เท่านั้น หากต้องการตรวจสอบ
อุปกรณ์ของผู้ใช้สำหรับความเข้ากันได้ โทร
AREarthManager.IsGeospatialModeSupported()
หากแสดงผลเป็น FeatureSupported.Unsupported
อย่าพยายามกำหนดค่า
เซสชัน
ขอสิทธิ์เข้าถึงตำแหน่งจากผู้ใช้ขณะรันไทม์
วิธีเปิดใช้บริการตำแหน่งของ Unity ในสคริปต์ที่ทริกเกอร์รันไทม์ สิทธิ์ให้ดำเนินการต่อไปนี้
ในอีก Project Settings > iOS > Other Settings > Location Usage Description ป้อนชื่อของแอปที่กำลังขอสิทธิ์
เปิดใช้บริการตำแหน่งของ Unity เพื่อทริกเกอร์รันไทม์ โดยทำตามขั้นตอนต่อไปนี้
public void OnEnable() { Input.location.Start(); } public void OnDisable() { Input.location.Stop(); }
ดูของ Unity
LocationService
สำหรับข้อมูลเพิ่มเติม
ตรวจสอบความพร้อมให้บริการของภูมิสารสนเทศ ณ ตำแหน่งปัจจุบันของอุปกรณ์
เนื่องจาก Geospatial API ใช้ VPS และ GPS ร่วมกันในการกำหนดตำแหน่งของภูมิสารสนเทศ จึงสามารถใช้ API ดังกล่าวได้ตราบเท่าที่อุปกรณ์สามารถระบุตำแหน่งของตนได้ ในพื้นที่ที่ GPS มีความแม่นยำต่ำ เช่น ในพื้นที่ในอาคารและสภาพแวดล้อมในเมืองที่หนาแน่น API จะใช้การครอบคลุม VPS เพื่อสร้างท่าทางที่มีความแม่นยำสูง ภายใต้เงื่อนไขทั่วไป VPS ควรมีความแม่นยำในการระบุตำแหน่งประมาณ 5 เมตร และความแม่นยำในการหมุน 5 องศา ใช้ AREarthManager.CheckVpsAvailability()
เพื่อระบุว่าสถานที่ตั้งหนึ่งๆ มีการครอบคลุม VPS หรือไม่
นอกจากนี้ Geospatial API ยังใช้ในพื้นที่ที่ไม่ครอบคลุม VPS ได้อีกด้วย ในสภาพแวดล้อมกลางแจ้งที่มีสิ่งกีดขวางจากด้านบนเล็กน้อยหรือไม่มีเลย GPS อาจเพียงพอที่จะสร้างท่าทางที่มีความแม่นยำสูง
ขั้นตอนถัดไป
- ดูตำแหน่งทางภูมิศาสตร์ของกล้องของอุปกรณ์เพื่อระบุตำแหน่งที่เจาะจงของอุปกรณ์ผู้ใช้ในชีวิตจริง
- ตรวจสอบความพร้อมใช้งาน VPS ในตำแหน่งที่ระบุของอุปกรณ์