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

กำหนดการตั้งค่าของแอปเพื่อให้ใช้ 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 แล้ว คุณต้องเพิ่มไลบรารีลงใน เปิดใช้ฟีเจอร์ภูมิสารสนเทศในแอป

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

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

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

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

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

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

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

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

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

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

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

  1. ในอีก Project Settings > iOS > Other Settings > Location Usage Description ป้อนชื่อของแอปที่กำลังขอสิทธิ์

  2. เปิดใช้บริการตำแหน่งของ 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 อาจเพียงพอที่จะสร้างท่าทางที่มีความแม่นยำสูง

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