พัฒนาด้วย Unity สำหรับ Android XR

อุปกรณ์ XR ที่รองรับ
คำแนะนำนี้จะช่วยคุณสร้างประสบการณ์การใช้งานสำหรับอุปกรณ์ XR ประเภทนี้
ชุดหูฟัง XR
แว่นตา XR แบบใช้สาย

คู่มือนี้จะแสดงภาพรวมของการพัฒนาด้วย Unity สำหรับ Android XR Android XR ทำงานร่วมกับเครื่องมือและฟีเจอร์ที่คุ้นเคยซึ่งคุณคาดหวังจาก Unity และเนื่องจากการรองรับ Android XR ของ Unity สร้างขึ้นบน OpenXR ฟีเจอร์หลายอย่างที่อธิบายไว้ในภาพรวมของ OpenXR จึงได้รับการรองรับใน Unity ด้วย

ทำตามคำแนะนำนี้เพื่อดูข้อมูลเกี่ยวกับสิ่งต่อไปนี้

  • การรองรับ Unity สำหรับ Android XR
    • ข้อมูลเบื้องต้นเกี่ยวกับ Unity XR
    • การพัฒนาและเผยแพร่แอปสำหรับ Android XR
    • แพ็กเกจ Unity สำหรับ Android XR
      • Unity OpenXR: แพ็กเกจ Android XR
      • Android XR Extensions สำหรับ Unity
      • ข้อควรพิจารณาเกี่ยวกับฟีเจอร์และความเข้ากันได้
  • การป้อนข้อมูลและการโต้ตอบ

การรองรับ Unity สำหรับ Android XR

เมื่อสร้างแอป Unity สำหรับ Android XR คุณสามารถใช้ประโยชน์จากเครื่องมือและความสามารถด้านเทคโนโลยีความจริงแบบผสม (MR) ใน Unity 6 เวอร์ชันล่าสุด ซึ่งรวมถึงเทมเพลตเทคโนโลยีความจริงแบบผสม (MR) ที่ใช้ XR Interaction Toolkit, AR Foundation และ OpenXR Plugin เพื่อช่วยให้คุณเริ่มต้นใช้งานได้อย่างรวดเร็ว เมื่อสร้างแอปด้วย Unity สำหรับ Android XR เราขอแนะนำให้ใช้ Universal Render Pipeline (URP) เป็นไปป์ไลน์การแสดงผลและ Vulkan เป็น Graphics API ฟีเจอร์เหล่านี้ช่วยให้คุณใช้ประโยชน์จากฟีเจอร์กราฟิกบางอย่างของ Unity ซึ่งรองรับเฉพาะ Vulkan เท่านั้น ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีกำหนดการตั้งค่าเหล่านี้ได้ในคู่มือการตั้งค่าโปรเจ็กต์

พื้นฐาน Unity XR

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

พัฒนาและเผยแพร่แอปสำหรับ Android

Unity มีเอกสารประกอบเชิงลึกสำหรับการพัฒนา การสร้าง และการเผยแพร่สำหรับ Android ซึ่งครอบคลุมหัวข้อต่างๆ เช่น สิทธิ์ของ Android ใน Unity, การตั้งค่าบิลด์ Android, การสร้างแอปสำหรับ Android และการนำส่งไปยัง Google Play

แพ็กเกจ Unity สำหรับ Android XR

มีแพ็กเกจ 2 รายการที่รองรับการสร้างแอป Unity สำหรับ Android XR ทั้ง 2 แพ็กเกจนี้เป็นปลั๊กอินของผู้ให้บริการ XR ซึ่งเปิดใช้ได้ผ่านแพ็กเกจการจัดการปลั๊กอิน XR ของ Unity เครื่องมือจัดการปลั๊กอิน XR จะเพิ่มการตั้งค่าโปรเจ็กต์เพื่อจัดการและให้ความช่วยเหลือเกี่ยวกับการโหลด การเริ่มต้น การตั้งค่า และการรองรับบิลด์สำหรับปลั๊กอิน XR หากต้องการอนุญาตให้แอปเรียกใช้ฟีเจอร์ OpenXR ขณะรันไทม์ โปรเจ็กต์ต้องเปิดใช้ฟีเจอร์เหล่านี้ผ่านเครื่องมือจัดการปลั๊กอิน

รูปภาพนี้แสดงตัวอย่างตำแหน่งที่คุณสามารถเปิดใช้กลุ่มฟีเจอร์เหล่านี้ผ่านเครื่องมือแก้ไขของ Unity

รูปที่ 1 ตัวอย่างหน้าจอ Unity XR Plug-in Management

Unity OpenXR Android XR

แพ็กเกจ Unity OpenXR Android XR เป็นปลั๊กอิน XR สำหรับเพิ่มการรองรับ Android XR ลงใน Unity ปลั๊กอิน XR นี้ให้การรองรับ Android XR ส่วนใหญ่สำหรับ Unity และเปิดใช้การรองรับอุปกรณ์ Android XR สำหรับโปรเจ็กต์ AR Foundation AR Foundation ออกแบบมาสำหรับนักพัฒนาแอปที่ต้องการสร้างประสบการณ์ AR หรือเทคโนโลยีความจริงแบบผสม (MR) โดยจะทำหน้าที่เป็นอินเทอร์เฟซสำหรับฟีเจอร์ AR แต่ไม่ได้ใช้ฟีเจอร์ใดๆ ด้วยตัวเอง แพ็กเกจ Unity OpenXR Android XR จะเป็นตัวจัดการการติดตั้งใช้งาน หากต้องการเริ่มต้นใช้งานแพ็กเกจนี้ โปรดดูคู่มือแพ็กเกจซึ่งมีคู่มือเริ่มต้นใช้งาน

Android XR Extensions สำหรับ Unity

ส่วนขยาย Android XR สำหรับ Unity จะเสริมแพ็กเกจ Unity OpenXR Android XR และมีฟีเจอร์เพิ่มเติมเพื่อช่วยคุณสร้างประสบการณ์ที่สมจริง โดยจะใช้เพียงอย่างเดียวหรือใช้ร่วมกับแพ็กเกจ Unity OpenXR Android XR ก็ได้

หากต้องการเริ่มต้นใช้งานแพ็กเกจนี้ ให้ทำตามคู่มือการตั้งค่าโปรเจ็กต์หรือคู่มือเริ่มใช้งานฉบับย่อสำหรับการนำเข้าส่วนขยาย Android XR สำหรับ Unity

ข้อควรพิจารณาเกี่ยวกับฟีเจอร์และความเข้ากันได้

ตารางต่อไปนี้อธิบายฟีเจอร์ที่แพ็กเกจ Unity OpenXR: Android XR และแพ็กเกจ Android XR Extensions for Unity รองรับ และสามารถใช้เพื่อระบุว่าแพ็กเกจใดมีฟีเจอร์ที่คุณต้องการและข้อควรพิจารณาเกี่ยวกับความเข้ากันได้

ฟีเจอร์

Unity OpenXR: สตริงฟีเจอร์ Android XR

สตริงฟีเจอร์ของ Android XR Extensions สำหรับ Unity

กรณีการใช้งานและลักษณะการทำงานที่คาดไว้

เซสชัน AR

Android XR: เซสชัน AR

  • การตั้งค่าฟีเจอร์รวมถึงการเพิ่มประสิทธิภาพการทิ้งบัฟเฟอร์ (Vulkan)

Android XR (ส่วนขยาย): การจัดการเซสชัน

  • การตั้งค่าฟีเจอร์ ได้แก่ Subsampling (Vulkan) และ URP SpaceWarp (Vulkan)

หากต้องการใช้ฟีเจอร์จากแพ็กเกจใดแพ็กเกจหนึ่ง คุณต้องเปิดใช้ฟีเจอร์เซสชัน AR สำหรับแพ็กเกจนั้น คุณสามารถเปิดใช้ทั้ง 2 ชุดฟีเจอร์พร้อมกันได้ โดยฟีเจอร์แต่ละรายการจะจัดการกับความขัดแย้งตามความเหมาะสม

การติดตามอุปกรณ์

ไม่มี

ไม่มี

การติดตามอุปกรณ์ใช้เพื่อติดตามตำแหน่งและการหมุนของอุปกรณ์ในพื้นที่จริง GameObject ของ XR Origin จะจัดการการติดตามอุปกรณ์และการเปลี่ยนสิ่งที่ติดตามได้เป็นระบบพิกัดของ Unity โดยอัตโนมัติโดยใช้คอมโพเนนต์ XROrigin และลำดับชั้น GameObject ที่มีกล้องและ TrackedPoseDriver

กล้อง

Android XR: กล้อง AR

ไม่มี

ฟีเจอร์นี้รองรับการประมาณแสงและฟีเจอร์ส่งผ่านวิดีโอแบบเต็มหน้าจอ

การตรวจจับระนาบ

Android XR: AR Plane

ไม่มี

ฟีเจอร์นี้รองรับการตรวจจับและติดตามพื้นผิวเรียบในสภาพแวดล้อมจริง

การติดตามวัตถุ

ไม่มี

Android XR (ส่วนขยาย): การติดตามวัตถุ

ฟีเจอร์นี้รองรับการตรวจจับและติดตามวัตถุในสภาพแวดล้อมจริง โดยใช้ร่วมกับคลังวัตถุอ้างอิง

การติดตามใบหน้า

Android XR: AR Face

  • XR_ANDROID_eye_tracking เท่านั้น
  • ไม่มีการติดตามใบหน้า

Android XR: การติดตามใบหน้า

  • XR_ANDROID_face_tracking

การรองรับดวงตาของอวาตาร์จะให้บริการผ่านฟีเจอร์ Android XR: AR Face เข้าถึงการแสดงสีหน้าของผู้ใช้ผ่านฟีเจอร์ Android XR: การติดตามใบหน้า คุณใช้ฟีเจอร์ทั้ง 2 อย่างนี้ร่วมกันได้

Ray Cast

Android XR: AR Raycast

  • หมุดระนาบ
  • Depth Anchor

ไม่มี

ฟีเจอร์นี้ช่วยให้คุณฉายรังสีและคำนวณจุดตัดระหว่างรังสีนั้นกับสิ่งที่ติดตามได้ในระนาบหรือสิ่งที่ติดตามได้ในเชิงลึกซึ่งตรวจพบในสภาพแวดล้อมจริง

แองเคอร์

Android XR: AR Anchor

ไม่มี

AR Anchor รองรับ Anchor เชิงพื้นที่ ระนาบ และถาวรผ่าน AR Foundation

การบดบัง

Android XR: การบดบัง AR

  • ความลึกของสภาพแวดล้อม

ไม่มี

การบดบังช่วยให้เนื้อหาเทคโนโลยีความจริงแบบผสม (MR) ในแอปปรากฏเป็นแบบซ่อนหรือถูกบดบังบางส่วนหลังวัตถุในสภาพแวดล้อมจริง

เมตริกประสิทธิภาพ

เมตริกประสิทธิภาพของ Android XR

ไม่มี

ใช้ฟีเจอร์นี้เพื่อเข้าถึงเมตริกประสิทธิภาพสำหรับอุปกรณ์ Android XR

เลเยอร์องค์ประกอบ

การรองรับเลเยอร์องค์ประกอบ (ต้องใช้ปลั๊กอิน OpenXR และเลเยอร์องค์ประกอบ XR)

Android XR: เลเยอร์การจัดองค์ประกอบแบบส่งผ่าน

  • XR_ANDROID_composition_layer_passthrough_mesh

ใช้การรองรับเลเยอร์องค์ประกอบของ Unity เพื่อสร้างเลเยอร์องค์ประกอบพื้นฐาน (เช่น สี่เหลี่ยม ทรงกระบอก การฉายภาพ) Android XR: สามารถใช้เลเยอร์องค์ประกอบ Passthrough เพื่อสร้างเลเยอร์ Passthrough ที่มี Mesh ที่กำหนดเอง โดยอ่านจาก GameObject ของ Unity

Foveated Rendering

Foveated Rendering (ต้องใช้ปลั๊กอิน OpenXR)

  • รองรับการแสดงผลแบบ Foveated ที่ติดตามดวงตา: พื้นที่ที่มีความละเอียดสูงจะอยู่ตรงกลางที่ผู้ใช้มองอยู่ ทำให้ผู้ใช้สังเกตเห็นได้น้อยลง

การแสดงผลแบบ Foveated (เดิม)

การแสดงผลแบบ Foveated ช่วยเพิ่มความเร็วในการแสดงผลโดยการลดความละเอียดของพื้นที่ในมุมมองรอบข้างของผู้ใช้ ฟีเจอร์การแสดงผลแบบ Foveated ของ Unity รองรับเฉพาะแอปที่ใช้ URP และ Vulkan เท่านั้น ฟีเจอร์ Foveation (เดิม) ในส่วนขยาย Android XR สำหรับ Unity ยังรองรับไปป์ไลน์การแสดงผลในตัวและ OpenGL ES ด้วย เราขอแนะนำให้ใช้ฟีเจอร์การแสดงผลแบบ Foveated ของ Unity หากเป็นไปได้ และโปรดทราบว่าเราขอแนะนำให้ใช้ทั้ง URP และ Vulkan เมื่อสร้างสำหรับ Android XR

พื้นที่อ้างอิงแบบไม่จำกัด

ไม่มี

Android XR: พื้นที่อ้างอิงแบบไม่จำกัด

ฟีเจอร์นี้จะตั้งค่าโหมดต้นทางการติดตาม XRInputSubsystem เป็น Unbounded Unbounded บ่งบอกว่า XRInputSubsystem ติดตาม InputDevice ทั้งหมดที่เกี่ยวข้องกับ Anchor ของโลก ซึ่งอาจมีการเปลี่ยนแปลง

โหมดผสมสภาพแวดล้อม

ไม่มี

โหมดการผสมสภาพแวดล้อม

ฟีเจอร์นี้ช่วยให้คุณตั้งค่าโหมดผสมผสานสภาพแวดล้อม XR ซึ่งควบคุมวิธีที่ภาพเสมือนจริงผสมผสานกับสภาพแวดล้อมในโลกจริงเมื่อเปิดใช้ฟีเจอร์ส่งผ่านภาพ

Geospatial (VPS)

ไม่มี

Android XR: Geospatial

ช่วยให้ XRGeospatialManager เข้าถึงความสามารถของระบบระบุตำแหน่งด้วยภาพ (VPS) ตรวจสอบความพร้อมใช้งานของตำแหน่ง คำนวณท่าทางภูมิสารสนเทศ และกำหนดค่าการติดตามระนาบสำหรับ Anchor พื้นผิวและภูมิสารสนเทศ

Google Cloud Auth

ไม่มี

Android XR: Google Cloud

ให้กลยุทธ์การกำหนดค่าการตรวจสอบสิทธิ์เซสชัน (คีย์ API, แบบไม่ใช้คีย์ และโทเค็นการตรวจสอบสิทธิ์) สำหรับบริการที่ใช้ระบบคลาวด์

Multimodal Face

ไม่มี

Android XR (ส่วนขยาย): ใบหน้าแบบหลายโมดัล

ขยาย Unity ARFace ด้วยรูปแบบการติดตามใบหน้าแบบหลายโมดัลที่กำหนดค่าได้ (XRFaceTrackerMode)

การแสดงสถานะแบตเตอรี่

ไม่มี

การแสดงสถานะแบตเตอรี่

อนุญาตให้ค้นหาสถานะแบตเตอรี่รันไทม์และระดับการชาร์จของตัวควบคุมที่เชื่อมต่อและเส้นทางอินพุตโดยใช้ XRBatteryStateDisplayFeature

การหรี่แสงแบบพาสทรูทั่วโลก

Android XR: กล้อง AR

ไม่มี

เปิดใช้การค้นหาและการตั้งค่าระดับการหรี่แสงแบบส่งผ่านในโลกจริงโดยใช้ ARCameraFeature ของ Unity

การแจกแจงพร็อพเพอร์ตี้ของระบบ

ไม่มี

Android XR: พร็อพเพอร์ตี้ของระบบ

แจกแจงพร็อพเพอร์ตี้ส่วนขยายรันไทม์และความสามารถของอุปกรณ์โดยใช้ XR_ANDROID_enumerate_system_extension_properties

การตั้งค่าที่แนะนำ

ไม่มี

Android XR: การตั้งค่าที่แนะนำ

อนุญาตให้ค้นหาสถานะก่อนเปิดใช้งานของสภาพแวดล้อมรันไทม์ (รวมถึงโหมดผสมสภาพแวดล้อม ความทึบแสงแบบพาสทรู และรูปแบบอินพุตที่ใช้งานอยู่) โดยใช้ XRRecommendedSettingsFeature.TryGetRecommendedSettings

การตรวจจับกรอบล้อมรอบ

Android XR: กรอบล้อมรอบ AR

เอนทิตีเชิงพื้นที่ (ส่วนขยาย): กรอบล้อมรอบ

ให้การรองรับการตรวจจับกรอบล้อมรอบสำหรับวัตถุ 3 มิติในสภาพแวดล้อมจริงโดยใช้เฟรมเวิร์กเอนทิตีเชิงพื้นที่ OpenXR (SpatialBoundingBoxSubsystem)

Anchor ที่แชร์ได้

ไม่มี

เอนทิตีเชิงพื้นที่ (ส่วนขยาย): Anchor ที่แชร์ได้

ขยายความสามารถของ Anchor โดยใช้ ARShareableAnchorManager และ XRShareableAnchorSubsystem รวมถึงการแนบ Anchor เชิงพื้นที่ภูมิศาสตร์ (TryAttachGeospatialAnchor) และ Anchor พื้นผิว (TryAttachSurfaceAnchorAsync) เมื่อใช้กับ Android XR: เชิงพื้นที่ภูมิศาสตร์

คอนเทนเนอร์เชิงพื้นที่

ไม่มี

คอนเทนเนอร์เชิงพื้นที่

อนุญาตให้แสดงผลเนื้อหาแอปพลิเคชันภายในคอนเทนเนอร์เชิงปริมาตร 3 มิติที่ระบบจัดการในโหมด Full Space พร้อม API และเหตุการณ์ Callback ใน XRSpatialContainerFeature เพื่อค้นหาและขอสถานะ ขอบเขต และระดับการเข้าถึงของคอนเทนเนอร์

การป้อนข้อมูลและการโต้ตอบ

Android XR รองรับอินพุตแบบหลายโมดัลที่เป็นธรรมชาติ

นอกจากนี้ยังรองรับอุปกรณ์ต่อพ่วง เช่น คอนโทรลเลอร์ 6DoF, เมาส์ และแป้นพิมพ์จริง นอกเหนือจากการติดตามมือและการติดตามดวงตา ซึ่งหมายความว่าแอปสำหรับ Android XR ควรจะรองรับการโต้ตอบด้วยมือ และไม่สามารถคาดเดาได้ว่าอุปกรณ์ทั้งหมดจะมาพร้อมกับตัวควบคุม

โปรไฟล์การโต้ตอบ

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

  1. เปิดหน้าต่าง การตั้งค่าโปรเจ็กต์ (เมนู: Edit > Project Settings)
  2. คลิก XR Plug-in Management เพื่อขยายส่วนปลั๊กอิน (หากจำเป็น)
  3. เลือก OpenXR ในรายการปลั๊กอิน XR
  4. ในส่วนโปรไฟล์การโต้ตอบ ให้เลือกปุ่ม + เพื่อเพิ่มโปรไฟล์
  5. เลือกโปรไฟล์ที่จะเพิ่มจากรายการ

การโต้ตอบด้วยมือ

การโต้ตอบด้วยมือ (XR_EXT_hand_interaction) มีให้โดยปลั๊กอิน OpenXR และคุณสามารถแสดงเลย์เอาต์อุปกรณ์ <HandInteraction> ในระบบอินพุต Unity ได้โดยเปิดใช้โปรไฟล์การโต้ตอบด้วยมือ ใช้โปรไฟล์การโต้ตอบนี้สำหรับการป้อนข้อมูลด้วยมือที่รองรับโดยท่าทางการดำเนินการ 4 ท่าที่ OpenXR กำหนดไว้ ได้แก่ "บีบ" "แตะ" "เล็ง" และ "จับ" หากต้องการฟังก์ชันการโต้ตอบด้วยมือหรือการติดตามการเคลื่อนไหวของมือเพิ่มเติม โปรดดู XR Hands ในหน้านี้

การโต้ตอบด้วยการจ้องด้วยตา

การโต้ตอบด้วยการจ้องมอง (XR_EXT_eye_gaze_interaction) มีให้โดยปลั๊กอิน OpenXR และคุณสามารถใช้เลย์เอาต์นี้เพื่อดึงข้อมูลท่าทางของดวงตา (ตำแหน่งและการหมุน) ที่ส่วนขยายแสดงผลได้ อ่านข้อมูลเพิ่มเติมเกี่ยวกับการโต้ตอบด้วยการจ้องมองในคู่มือการป้อนข้อมูล OpenXR

การโต้ตอบกับตัวควบคุม

Android XR รองรับโปรไฟล์ตัวควบคุม Oculus Touch สำหรับตัวควบคุม 6DoF โปรไฟล์ทั้ง 2 รายการนี้มาจากปลั๊กอิน OpenXR

การโต้ตอบด้วยเมาส์

โปรไฟล์การโต้ตอบด้วยเมาส์ของ Android XR (XR_ANDROID_mouse_interaction) มีให้โดยส่วนขยาย Android XR สำหรับ Unity โดยจะแสดงเลย์เอาต์อุปกรณ์ <AndroidXRMouse> ในระบบอินพุตของ Unity

การโต้ตอบด้วยท่าทางฝ่ามือ

ปลั๊กอิน OpenXR รองรับการโต้ตอบด้วยท่าทางของฝ่ามือ (XR_EXT_palm_pose) ซึ่งจะแสดงเลย์เอาต์ <PalmPose> ภายในระบบอินพุตของ Unity ท่าทางฝ่ามือไม่ได้มีไว้เพื่อเป็นทางเลือกแทนส่วนขยายหรือแพ็กเกจที่ทำการติดตามการเคลื่อนไหวของมือสำหรับกรณีการใช้งานที่ซับซ้อนมากขึ้น แต่สามารถใช้เพื่อวางเนื้อหาภาพเฉพาะแอป เช่น ภาพอวาตาร์ ท่าทางของฝ่ามือประกอบด้วยทั้งตำแหน่งและการวางแนวของฝ่ามือ

XR Hands

แพ็กเกจ XR Hands ช่วยให้คุณเข้าถึงข้อมูลการติดตามการเคลื่อนไหวของมือได้โดยใช้ XR_EXT_hand_tracking และ XR_FB_hand_tracking_aim รวมถึงมี Wrapper สำหรับแปลงข้อมูลข้อต่อมือจากการติดตามการเคลื่อนไหวของมือเป็นท่าทางอินพุต หากต้องการใช้ฟีเจอร์ที่แพ็กเกจ XR Hands มีให้ ให้เปิดใช้ฟีเจอร์ระบบย่อยการติดตามการเคลื่อนไหวของมือและการติดตามการเคลื่อนไหวของมือ Meta โดยใช้ OpenXR

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

ดูรายละเอียดเพิ่มเติมได้ที่เอกสารประกอบของ Unity สำหรับการตั้งค่า XR Hands ในโปรเจ็กต์

ขอบเขตความเชื่อมั่นในการติดตามใบหน้า

ส่วนขยาย XR_ANDROID_face_tracking จะให้ค่าความเชื่อมั่นสำหรับบริเวณใบหน้า 3 ส่วน ได้แก่ ด้านซ้ายบน ด้านขวาบน และใบหน้าส่วนล่าง ค่าเหล่านี้มีตั้งแต่ 0 (ไม่มั่นใจ) ถึง 1 (มั่นใจสูงสุด) ซึ่งบ่งบอกถึงความแม่นยำของการติดตามใบหน้าสำหรับแต่ละบริเวณ

คุณสามารถใช้ค่า Confidence เหล่านี้เพื่อปิดใช้ Blendshape อย่างต่อเนื่องหรือใช้ฟิลเตอร์ภาพ (เช่น การเบลอ) กับบริเวณใบหน้าที่เกี่ยวข้อง สำหรับพื้นฐาน ให้ปิดใช้งานรูปทรงผสมในบริเวณใบหน้าที่เกี่ยวข้อง

บริเวณ "ใบหน้าส่วนล่าง" หมายถึงทุกอย่างที่อยู่ใต้ดวงตา ซึ่งรวมถึงปาก คาง แก้ม และจมูก ส่วนบน 2 ส่วน ได้แก่ บริเวณดวงตาและคิ้วทางด้านซ้ายและขวาของใบหน้า

ข้อมูลโค้ด C# ต่อไปนี้แสดงวิธีเข้าถึงและใช้ข้อมูลความเชื่อมั่นในสคริปต์ Unity

using UnityEngine;
using Google.XR.Extensions;

public class FaceTrackingConfidence : MonoBehaviour
{
    void Update()
    {
      if (!XRFaceTrackingFeature.IsFaceTrackingExtensionEnabled.HasValue)
      {
        DebugTextTopCenter.text = "XrInstance hasn't been initialized.";
        return;
      }
      else if (!XRFaceTrackingFeature.IsFaceTrackingExtensionEnabled.Value)
      {
        DebugTextTopCenter.text = "XR_ANDROID_face_tracking is not enabled.";
        return;
      }

      for (int x = 0; x < _faceManager.Face.ConfidenceRegions.Length; x++)
      {
        switch (x)
        {
          case (int)XRFaceConfidenceRegion.Lower:
            regionText = "Bottom";
            break;
          case (int)XRFaceConfidenceRegion.LeftUpper:
            regionText = DebugTextConfidenceLeft;
            break;
          case (int)XRFaceConfidenceRegion.RightUpper:
            regionText = DebugTextConfidenceRight;
            break;
        }
    }
}

ดูข้อมูลเพิ่มเติมได้ที่เอกสารประกอบเกี่ยวกับส่วนขยาย Android XR สำหรับ Unity

เลือกวิธีแสดงผลมือ

Android XR รองรับการแสดงผลมือ 2 วิธี ได้แก่ Hand Mesh และเครื่องมือแสดงภาพ Prefab

เมชมือ

แพ็กเกจ Android XR Unity มีฟีเจอร์ Hand Mesh ที่ให้สิทธิ์เข้าถึง XR_ANDROID_hand_mesh extension ฟีเจอร์ Hand Mesh จะแสดงเมชสำหรับมือของผู้ใช้ Hand mesh ประกอบด้วยจุดยอดของสามเหลี่ยมที่แสดงถึงเรขาคณิตของมือ ฟีเจอร์นี้มีไว้เพื่อใช้สร้างเมชที่ปรับเปลี่ยนในแบบของคุณซึ่งแสดงถึงรูปทรงเรขาคณิตจริงของมือผู้ใช้สำหรับการแสดงภาพ

XR Hands Prefab

แพ็กเกจ XR Hands มีตัวอย่างที่เรียกว่าเครื่องมือแสดงภาพมือ ซึ่งมีมือซ้ายและมือขวาที่ทำริกกิ้งอย่างสมบูรณ์เพื่อแสดงภาพมือของผู้ใช้ที่เหมาะสมกับบริบท

ท่าทางสัมผัสของระบบ

Android XR มีท่าทางสัมผัสของระบบเพื่อเปิดเมนูให้ผู้ใช้ย้อนกลับ เปิด Launcher หรือดูภาพรวมของแอปที่ทำงานอยู่ ผู้ใช้สามารถเปิดใช้งานเมนูระบบนี้ได้โดยใช้การบีบนิ้วด้วยมือข้างที่ถนัด

เมื่อผู้ใช้โต้ตอบกับเมนูการนำทางของระบบ แอปพลิเคชันจะตอบสนองต่อเหตุการณ์การติดตามการเคลื่อนไหวของศีรษะเท่านั้น แพ็กเกจ XR Hands สามารถตรวจจับได้เมื่อผู้ใช้ดำเนินการบางอย่าง เช่น การโต้ตอบกับเมนูการนำทางของระบบนี้ การตรวจสอบ AimFlags, SystemGesture และ DominantHand จะช่วยให้คุณทราบเมื่อมีการดำเนินการของระบบนี้ ดูข้อมูลเพิ่มเติมเกี่ยวกับ AimFlags ได้ที่เอกสารประกอบ Enum MetaAimFlags ของ Unity

XR Interaction Toolkit

แพ็กเกจ XR Interaction Toolkit เป็นระบบการโต้ตอบระดับสูงที่อิงตามคอมโพเนนต์สำหรับการสร้างประสบการณ์ VR และ AR โดยมีเฟรมเวิร์กที่ทำให้การโต้ตอบแบบ 3 มิติและ UI พร้อมใช้งานจากเหตุการณ์อินพุตของ Unity โดยรองรับงานการโต้ตอบต่างๆ เช่น การตอบสนองแบบรู้สึกได้ การตอบสนองด้วยภาพ และการเคลื่อนที่


OpenXR™ และโลโก้ OpenXR เป็นเครื่องหมายการค้าของ The Khronos Group Inc. และจดทะเบียนเป็นเครื่องหมายการค้าในจีน สหภาพยุโรป ญี่ปุ่น และสหราชอาณาจักร