คู่มือนี้จะแสดงภาพรวมของการพัฒนาด้วย Unity สำหรับ Android XR Android XR ทำงานร่วมกับเครื่องมือและฟีเจอร์ที่คุ้นเคยซึ่งคุณคาดหวังจาก Unity และเนื่องจากการรองรับ Android XR ของ Unity สร้างขึ้นบน OpenXR ฟีเจอร์หลายอย่างที่อธิบายไว้ในภาพรวมของ OpenXR จึงรองรับใน Unity ด้วย
ทำตามคำแนะนำนี้เพื่อดูข้อมูลเกี่ยวกับสิ่งต่อไปนี้
- การรองรับ Android XR ใน Unity
- ข้อมูลพื้นฐานเกี่ยวกับ Unity XR
- การพัฒนาและเผยแพร่แอปสำหรับ Android XR
- แพ็กเกจ Unity สำหรับ Android XR
- Unity OpenXR: แพ็กเกจ Android XR
- ส่วนขยาย Android XR สำหรับ Unity
- ข้อควรพิจารณาเกี่ยวกับฟีเจอร์และความเข้ากันได้
- การป้อนข้อมูลและการโต้ตอบ
การรองรับ Unity สำหรับ Android XR
เมื่อสร้างแอป Unity สำหรับ Android XR คุณจะใช้ประโยชน์จากเครื่องมือและความสามารถของเทคโนโลยีความจริงผสมได้ใน Unity 6 เวอร์ชันล่าสุด ซึ่งรวมถึงเทมเพลตความเป็นจริงแบบผสมที่ใช้ XR Interaction Toolkit, AR Foundation และOpenXR Plugin เพื่อช่วยให้คุณเริ่มต้นใช้งานได้อย่างรวดเร็ว เมื่อสร้างแอปด้วย Unity สำหรับ Android XR เราขอแนะนำให้ใช้ Universal Render Pipeline (URP) เป็น Render Pipeline และ Vulkan เป็น Graphics API ฟีเจอร์เหล่านี้ช่วยให้คุณ ใช้ประโยชน์จากฟีเจอร์กราฟิกบางอย่างของ Unity ซึ่ง รองรับเฉพาะ Vulkan ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีกำหนดค่าการตั้งค่าเหล่านี้ได้ในคู่มือการตั้งค่าโปรเจ็กต์
พื้นฐาน XR ของ Unity
หากเพิ่งเริ่มใช้ Unity หรือพัฒนา XR โปรดดูคู่มือ XR ของ Unity เพื่อทำความเข้าใจแนวคิดและเวิร์กโฟลว์ XR ขั้นพื้นฐาน XR Manual มีข้อมูลเกี่ยวกับสิ่งต่อไปนี้
- ปลั๊กอินผู้ให้บริการ XR รวมถึง Unity OpenXR: Android XR และส่วนขยาย Android XR สำหรับ Unity
- แพ็กเกจการรองรับ XR เพื่อเพิ่มฟีเจอร์ระดับแอปพลิเคชันเพิ่มเติม
- คู่มือสถาปัตยกรรม XR ที่อธิบายเทคโนโลยี XR ของ Unity และระบบย่อย XR
- การตั้งค่าโปรเจ็กต์ XR
- การสร้างและเรียกใช้แอป XR
- คำแนะนำด้านกราฟิก XR รวมถึง Universal Render Pipeline, การแสดงภาพสเตอริโอ, การแสดงผลแบบโฟเวีย, ภูมิภาคการแสดงผลแบบหลายมุมมอง และการกำหนดเวลาเฟรม VR
- คำแนะนำด้านเสียง 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
Unity OpenXR Android XR
แพ็กเกจ Unity OpenXR Android XR คือ XR Plug-in สำหรับเพิ่มการรองรับ Android XR ใน Unity ปลั๊กอิน XR นี้ให้การสนับสนุน Android XR ส่วนใหญ่สำหรับ Unity และช่วยให้อุปกรณ์ Android XR รองรับโปรเจ็กต์ AR Foundation AR Foundation ได้รับการออกแบบมาสำหรับนักพัฒนาแอปที่ต้องการสร้างประสบการณ์ AR หรือ Mixed Reality โดยมีอินเทอร์เฟซสำหรับฟีเจอร์ AR แต่ไม่ได้ใช้ฟีเจอร์ใดๆ ด้วยตัวเอง แพ็กเกจ Unity OpenXR Android XR มีการติดตั้งใช้งาน หากต้องการเริ่มต้นใช้งานแพ็กเกจนี้ โปรดดูคู่มือแพ็กเกจซึ่งมีคู่มือเริ่มต้นใช้งาน
ส่วนขยาย Android XR สำหรับ Unity
ส่วนขยาย Android XR สำหรับ Unity ช่วยเสริมแพ็กเกจ Android XR ของ Unity OpenXR และมีฟีเจอร์เพิ่มเติม ที่จะช่วยคุณสร้างประสบการณ์สมจริง โดยจะใช้เพียงอย่างเดียวหรือใช้ร่วมกับแพ็กเกจ Unity OpenXR Android XR ก็ได้
หากต้องการเริ่มต้นใช้งานแพ็กเกจนี้ ให้ทําตามคู่มือการตั้งค่าโปรเจ็กต์หรือคู่มือเริ่มต้นฉบับย่อสําหรับการนําเข้าส่วนขยาย Android XR สําหรับ Unity
ข้อควรพิจารณาเกี่ยวกับฟีเจอร์และความเข้ากันได้
ตารางต่อไปนี้จะอธิบายฟีเจอร์ที่ Unity OpenXR รองรับ แพ็กเกจ Android XR และแพ็กเกจส่วนขยาย Android XR สำหรับ Unity และใช้เพื่อ ระบุแพ็กเกจที่มีฟีเจอร์ที่คุณต้องการ รวมถึงข้อควรพิจารณาด้าน ความเข้ากันได้
ฟีเจอร์ |
Unity OpenXR: สตริงฟีเจอร์ Android XR |
สตริงฟีเจอร์ของส่วนขยาย Android XR สำหรับ Unity |
กรณีการใช้งานและลักษณะการทำงานที่คาดไว้ |
---|---|---|---|
Android XR: เซสชัน AR
|
Android XR (ส่วนขยาย): การจัดการเซสชัน
|
หากต้องการใช้ฟีเจอร์จากแพ็กเกจใดแพ็กเกจหนึ่ง คุณต้องเปิดใช้ฟีเจอร์ AR Session สำหรับแพ็กเกจนั้น คุณเปิดใช้ฟีเจอร์ทั้ง 2 ชุดพร้อมกันได้ โดยฟีเจอร์แต่ละรายการจะจัดการความขัดแย้งตามความเหมาะสม |
|
ไม่มี |
ไม่มี |
การติดตามอุปกรณ์ใช้เพื่อติดตามตำแหน่งและการหมุนของอุปกรณ์ในพื้นที่จริง GameObject ของ XR Origin จะจัดการการติดตามอุปกรณ์และแปลงวัตถุที่ติดตามได้เป็นระบบพิกัดของ Unity โดยอัตโนมัติโดยใช้คอมโพเนนต์ XROrigin และลำดับชั้น GameObject ที่มีกล้องและ TrackedPoseDriver |
|
Android XR: กล้อง AR |
ไม่มี |
ฟีเจอร์นี้รองรับการประมาณแสงและการส่งผ่านแบบเต็มหน้าจอ |
|
Android XR: ระนาบ AR |
Android XR (ส่วนขยาย): ระนาบ |
ฟีเจอร์ทั้ง 2 นี้เหมือนกันทุกประการ คุณจะใช้ฟีเจอร์ใดฟีเจอร์หนึ่งก็ได้ Android XR (ส่วนขยาย): มี Plane เพื่อให้นักพัฒนาซอฟต์แวร์ใช้ฟีเจอร์การติดตามออบเจ็กต์และ Anchor แบบถาวรของ Android XR (ส่วนขยาย) ได้โดยไม่ต้องขึ้นอยู่กับแพ็กเกจ Unity OpenXR Android XR ในอนาคต เราจะนำ Android XR (ส่วนขยาย): ระนาบออกเพื่อเปลี่ยนไปใช้ Android XR: Anchor AR |
|
ไม่มี |
Android XR (ส่วนขยาย): การติดตามออบเจ็กต์ |
ฟีเจอร์นี้รองรับการตรวจจับและติดตามออบเจ็กต์ในสภาพแวดล้อมจริง ซึ่งใช้ร่วมกับคลังออบเจ็กต์อ้างอิง |
|
Android XR: ใบหน้า AR
|
Android XR: การติดตามใบหน้า
|
การรองรับดวงตาของอวตารมีให้ผ่านฟีเจอร์ Android XR: AR Face เข้าถึงสีหน้าของผู้ใช้ผ่านฟีเจอร์การติดตามใบหน้าของ Android XR คุณใช้ฟีเจอร์ทั้ง 2 นี้ร่วมกันได้ |
|
Android XR: AR Raycast
|
ไม่มี |
ฟีเจอร์นี้ช่วยให้คุณยิงรังสีและคำนวณจุดตัดระหว่างรังสีนั้นกับวัตถุที่ติดตามระนาบหรือวัตถุที่ติดตามความลึกที่ตรวจพบในสภาพแวดล้อมจริงได้ |
|
Android XR: Anchor AR |
Android XR (ส่วนขยาย): Anchor
|
ฟีเจอร์ทั้ง 2 รายการรองรับทั้ง Spatial Anchor และ Plane Anchor โดยคุณจะใช้ฟีเจอร์ใดฟีเจอร์หนึ่งก็ได้ สำหรับ Anchor แบบถาวร ให้ใช้ Android XR (ส่วนขยาย): Anchor ในอนาคต เราจะนำ Android XR (ส่วนขยาย): Anchor ออก และฟีเจอร์ Anchor ทั้งหมดจะอยู่ใน Android XR: AR Anchor |
|
Android XR: การบดบัง AR
|
ไม่มี |
การบดบังช่วยให้เนื้อหาความเป็นจริงผสมในแอปของคุณปรากฏเป็นแบบซ่อนหรือถูกบดบังบางส่วนอยู่ด้านหลังวัตถุในสภาพแวดล้อมจริง |
|
เมตริกประสิทธิภาพ |
เมตริกประสิทธิภาพของ Android XR |
ไม่มี |
ใช้ฟีเจอร์นี้เพื่อเข้าถึงเมตริกประสิทธิภาพสำหรับอุปกรณ์ Android XR |
รองรับเลเยอร์การเรียบเรียง (ต้องใช้ปลั๊กอิน OpenXR และเลเยอร์การเรียบเรียง XR) |
Android XR: เลเยอร์การจัดองค์ประกอบแบบส่งผ่าน
|
ใช้การรองรับเลเยอร์การจัดองค์ประกอบของ Unity เพื่อสร้างเลเยอร์การจัดองค์ประกอบพื้นฐาน (เช่น สี่เหลี่ยมจัตุรัส ทรงกระบอก การฉายภาพ) Android XR: เลเยอร์การจัดองค์ประกอบการส่งผ่านสามารถใช้เพื่อสร้างเลเยอร์การส่งผ่านที่มีตาข่ายที่กำหนดเองได้ โดยอ่านจาก GameObject ของ Unity |
|
การแสดงผลแบบโฟเวต (ต้องใช้ปลั๊กอิน OpenXR)
|
โฟเวชัน (เดิม) |
การเรนเดอร์แบบโฟเวตช่วยเพิ่มความเร็วในการเรนเดอร์ด้วยการลดความละเอียดของพื้นที่ในวิสัยทัศน์รอบข้างของผู้ใช้ ฟีเจอร์การเรนเดอร์แบบโฟเวตของ Unity รองรับเฉพาะแอปที่ใช้ URP และ Vulkan เท่านั้น ฟีเจอร์ Foveation (เดิม) ใน Android XR Extensions สำหรับ Unity ยังรองรับไปป์ไลน์การเรนเดอร์ในตัวและ OpenGL ES ด้วย เราขอแนะนำให้ใช้ฟีเจอร์การเรนเดอร์แบบโฟเวตของ Unity เมื่อเป็นไปได้ และโปรดทราบว่าทั้ง URP และ Vulkan เป็นตัวเลือกที่แนะนำเมื่อสร้างสำหรับ Android XR |
|
ไม่มี |
Android XR: พื้นที่อ้างอิงแบบไม่จำกัด |
ฟีเจอร์นี้จะตั้งค่าโหมดต้นทางการติดตาม XRInputSubsystem เป็น Unbounded Unbounded หมายความว่า XRInputSubsystem จะติดตาม InputDevice ทั้งหมดที่สัมพันธ์กับ World Anchor ซึ่งอาจเปลี่ยนแปลงได้ |
|
ไม่มี |
โหมดการผสมสภาพแวดล้อม |
ฟีเจอร์นี้ช่วยให้คุณตั้งค่าโหมดการผสมสภาพแวดล้อม XR ซึ่งควบคุมวิธีที่ภาพเสมือนผสานรวมกับสภาพแวดล้อมในโลกจริงเมื่อเปิดใช้การแสดงภาพ |
การป้อนข้อมูลและการโต้ตอบ
Android XR รองรับการป้อนข้อมูลแบบธรรมชาติหลายรูปแบบ
นอกจากระบบติดตามมือและดวงตาแล้ว ระบบยังรองรับอุปกรณ์ต่อพ่วง เช่น ตัวควบคุม 6DoF เมาส์ และแป้นพิมพ์จริงด้วย ซึ่งหมายความว่าแอปสำหรับ Android XR ควรจะรองรับการโต้ตอบด้วยมือ และไม่สามารถถือได้ว่าอุปกรณ์ทุกเครื่องจะมาพร้อมกับคอนโทรลเลอร์
โปรไฟล์การโต้ตอบ
Unity ใช้โปรไฟล์การโต้ตอบเพื่อจัดการวิธีที่แอปพลิเคชัน XR สื่อสารกับอุปกรณ์และแพลตฟอร์ม XR ต่างๆ โปรไฟล์เหล่านี้ กำหนดอินพุตและเอาต์พุตที่คาดไว้สำหรับการกำหนดค่าฮาร์ดแวร์ต่างๆ เพื่อส่งเสริมความเข้ากันได้และฟังก์ชันการทำงานที่สอดคล้องกันในแพลตฟอร์มต่างๆ การเปิดใช้โปรไฟล์การโต้ตอบจะช่วยให้มั่นใจได้ว่าแอปพลิเคชัน XR จะทำงานได้อย่างถูกต้องในอุปกรณ์ต่างๆ รักษาการแมปอินพุตที่สอดคล้องกัน และมีสิทธิ์เข้าถึงฟีเจอร์ XR ที่เฉพาะเจาะจง วิธีตั้งค่าโปรไฟล์การโต้ตอบ
- เปิดหน้าต่างการตั้งค่าโปรเจ็กต์ (เมนู: แก้ไข > การตั้งค่าโปรเจ็กต์)
- คลิกการจัดการปลั๊กอิน XR เพื่อขยายส่วนปลั๊กอิน (หาก จำเป็น)
- เลือก OpenXR ในรายการปลั๊กอิน XR
- ในส่วนโปรไฟล์การโต้ตอบ ให้เลือกปุ่ม + เพื่อเพิ่มโปรไฟล์
- เลือกโปรไฟล์ที่จะเพิ่มจากรายการ
การโต้ตอบด้วยมือ
การโต้ตอบด้วยมือ (XR_EXT_hand_interaction
) มาจากปลั๊กอิน OpenXR และคุณสามารถแสดงเลย์เอาต์<HandInteraction>
อุปกรณ์ในระบบอินพุตของ Unity ได้โดยการเปิดใช้โปรไฟล์การโต้ตอบด้วยมือ ใช้โปรไฟล์การโต้ตอบนี้สำหรับการป้อนข้อมูลด้วยมือที่ท่าทางสัมผัส 4 แบบที่กำหนดโดย OpenXR รองรับ ได้แก่ "หยิก" "จิ้ม" "เล็ง" และ "จับ" หากต้องการฟังก์ชันการโต้ตอบด้วยมือหรือการติดตามมือเพิ่มเติม
โปรดดูมือ XR ในหน้านี้
การโต้ตอบด้วยการจ้องด้วยตา
การโต้ตอบด้วยการมอง (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 Input System
การโต้ตอบท่าทางฝ่ามือ
ปลั๊กอิน OpenXR รองรับท่าทางฝ่ามือ
การโต้ตอบ (XR_EXT_palm_pose
) ซึ่ง
แสดงเลย์เอาต์ <PalmPose>
ภายในระบบอินพุตของ Unity
ท่าฝ่ามือไม่ได้มีไว้เพื่อเป็นทางเลือกแทนส่วนขยายหรือแพ็กเกจที่
ติดตามมือสำหรับ Use Case ที่ซับซ้อนกว่า แต่สามารถใช้เพื่อ
วางเนื้อหาภาพเฉพาะแอป เช่น ภาพอวตาร ท่าฝ่ามือประกอบด้วย
ทั้งตำแหน่งและทิศทางของฝ่ามือ
มือ XR
แพ็กเกจ XR Hands ช่วยให้คุณเข้าถึงข้อมูลการติดตามการเคลื่อนไหวของมือได้โดยใช้
XR_EXT_hand_tracking
และ
XR_FB_hand_tracking_aim
รวมถึงมี Wrapper เพื่อแปลง
ข้อมูลข้อต่อของมือจากการติดตามการเคลื่อนไหวของมือเป็นท่าทางอินพุต หากต้องการใช้ฟีเจอร์ที่แพ็กเกจ XR Hands มีให้ ให้เปิดใช้ฟีเจอร์ระบบย่อยการติดตามมือและการติดตามมือของ Meta
OpenXR สำหรับการเล็ง
แพ็กเกจมือ XR มีประโยชน์ในกรณีที่คุณต้องการท่าทางมือหรือข้อมูลข้อต่อมือที่ละเอียดยิ่งขึ้น หรือเมื่อคุณต้องการทำงานกับท่าทางที่กำหนดเอง
ดูรายละเอียดเพิ่มเติมได้ในเอกสารประกอบของ Unity สำหรับการตั้งค่ามือ XR ในโปรเจ็กต์
เลือกวิธีแสดงมือ
Android XR รองรับการแสดงผลมือ 2 วิธี ได้แก่ ตาข่ายมือและ เครื่องมือแสดงภาพที่กำหนดไว้ล่วงหน้า
โครงข่ายมือ
แพ็กเกจ Android XR Unity มีฟีเจอร์ Hand Mesh ที่ให้
สิทธิ์เข้าถึง XR_ANDROID_hand_mesh extension
ฟีเจอร์ Hand Mesh
จะแสดง Mesh สำหรับมือของผู้ใช้ Hand Mesh มีจุดยอดของ
สามเหลี่ยมที่แสดงถึงรูปทรงของมือ ฟีเจอร์นี้มีไว้เพื่อใช้ในการสร้างตาข่ายที่ปรับเปลี่ยนในแบบของคุณซึ่งแสดงถึงรูปทรงเรขาคณิตจริงของมือผู้ใช้เพื่อการแสดงภาพ
Prefab ของมือ XR
แพ็กเกจ XR Hands มีตัวอย่างชื่อ Hands visualizer ซึ่งมีมือซ้ายและขวาที่ผ่านการปรับแต่งอย่างเต็มรูปแบบ สำหรับการแสดงผลที่เหมาะสมกับบริบทของมือผู้ใช้
ท่าทางสัมผัสของระบบ
Android XR มีท่าทางสัมผัสของระบบเพื่อเปิดเมนูให้ผู้ใช้กลับไป เปิด Launcher หรือดูภาพรวมของแอปที่กำลังทำงานอยู่ ผู้ใช้สามารถเปิดใช้งานเมนูระบบนี้ได้โดยใช้การบีบนิ้วด้วยมือข้างที่ถนัด
เมื่อผู้ใช้โต้ตอบกับเมนูการนำทางของระบบ แอปพลิเคชัน
จะตอบสนองต่อเหตุการณ์การติดตามศีรษะเท่านั้น แพ็กเกจ XR Hands สามารถตรวจจับได้เมื่อผู้ใช้ดำเนินการบางอย่าง เช่น โต้ตอบกับเมนูการนำทางของระบบนี้ การตรวจสอบ AimFlags
, SystemGesture
และ DominantHand
จะช่วยให้คุณทราบ
เมื่อระบบดำเนินการนี้ ดูข้อมูลเพิ่มเติมเกี่ยวกับ AimFlags
ได้ที่เอกสารประกอบ Enum MetaAimFlags ของ Unity
ชุดเครื่องมือการโต้ตอบ XR
แพ็กเกจ XR Interaction Toolkit เป็นระบบการโต้ตอบระดับสูงที่อิงตามคอมโพเนนต์สำหรับการสร้างประสบการณ์ VR และ AR โดยจะ มีเฟรมเวิร์กที่ทำให้การโต้ตอบ 3 มิติและ UI พร้อมใช้งานจากเหตุการณ์อินพุตของ Unity โดยรองรับงานการโต้ตอบต่างๆ รวมถึงการตอบสนองแบบสัมผัส ภาพ และการเคลื่อนที่
OpenXR™ และโลโก้ OpenXR เป็นเครื่องหมายการค้าของ The Khronos Group Inc. และจดทะเบียนเป็นเครื่องหมายการค้าในจีน สหภาพยุโรป ญี่ปุ่น และสหราชอาณาจักร