วิธีการ

เริ่มต้นใช้งาน Unity และ Android XR

ใช้เวลาอ่าน 6 นาที
Luke Hopkins
วิศวกรนักพัฒนาซอฟต์แวร์สัมพันธ์ของ Android

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

ตอนนี้เป็นช่วงเวลาที่ดีที่สุดในการเริ่มต้นพัฒนา XR เมื่อเดือนธันวาคมที่ผ่านมา เราได้ประกาศเปิดตัว Android XR ซึ่งเป็นแพลตฟอร์ม Android ใหม่ของ Google ที่สร้างขึ้นบนมาตรฐานแบบเปิด เช่น OpenXR และ Vulkan ซึ่งช่วยให้การพัฒนา XR เข้าถึงได้ง่ายกว่าที่เคย


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

openxr_face_tracking2.webp

ไม่ว่าคุณจะเคยพัฒนา XR มาก่อนหรือไม่ เราก็พร้อมช่วยให้คุณเริ่มต้นใช้งาน

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

เมื่ออ่านบล็อกนี้จบ คุณจะมีความเข้าใจในเรื่องต่อไปนี้เป็นอย่างดี

  • ระบบนิเวศของแพ็กเกจ
  • ขั้นตอนการตั้งค่าที่สำคัญ
  • วิธีการป้อนข้อมูล
  • ความเป็นส่วนตัวและสิทธิ์
  • เลเยอร์การเรียบเรียง

Unity สำหรับการพัฒนา Android XR

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

เมื่อใช้ Unity คุณจะได้รับประโยชน์จากระบบนิเวศและเครื่องมือ XR ที่มีประสิทธิภาพ Unity มีแพ็กเกจที่สร้างไว้แล้ว เช่น XR Interaction Toolkit, OpenXR plugin, XR composition layers, XR Hands, ร้านค้าสินทรัพย์ขนาดใหญ่ที่เต็มไปด้วยคอมโพเนนต์และเทมเพลตที่พร้อมใช้งานกับ XR รวมถึงเครื่องมือจำลองและการทดสอบ XR และตั้งแต่ Unity 6 เปิดตัวเมื่อเดือนพฤศจิกายนปีที่แล้ว คุณจะได้รับประโยชน์จากประสิทธิภาพของ Universal Render Pipeline (URP) ที่ได้รับการปรับปรุง การรองรับกราฟิก Vulkan ที่ดียิ่งขึ้น และโปรไฟล์การสร้างที่ได้รับการปรับปรุงด้วย

ตัวอย่างโปรเจ็กต์บางส่วนที่จะช่วยให้คุณเห็นภาพว่าทำอะไรได้บ้างมีดังนี้

การตั้งค่าที่จำเป็น: รากฐานการพัฒนาของคุณ

ข้อกำหนดและการติดตั้ง Unity 6

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

unity6.png

โปรไฟล์บิลด์ของ Android XR: ลดความซับซ้อนในการกำหนดค่า

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

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

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

buildprofiles.png

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

Graphics API: เหตุผลที่ Vulkan มีความสำคัญ

เมื่อตั้งค่าโปรเจ็กต์ Unity ด้วยโปรไฟล์บิลด์ Android XR แล้ว เราขอแนะนำให้ตรวจสอบก่อนว่าคุณได้ตั้งค่า Vulkan เป็นกราฟิก API แล้ว Android XR สร้างขึ้นเป็นแพลตฟอร์มที่ใช้ Vulkan เป็นหลัก ในเดือนมีนาคม 2025 Google ได้ประกาศว่าตอนนี้ Vulkan เป็น API กราฟิกอย่างเป็นทางการสำหรับ Android แล้ว ซึ่งเป็นกราฟิก API ระดับต่ำที่ทันสมัยซึ่งช่วยให้นักพัฒนาเพิ่มประสิทธิภาพของ GPU รุ่นใหม่ๆ ได้สูงสุด และปลดล็อกฟีเจอร์ขั้นสูง เช่น Ray Tracing และ Multithreading เพื่อภาพเกมที่สมจริงและสมจริง

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

Unity 6 จะจัดการ Vulkan โดยอัตโนมัติ ดังนั้นเมื่อคุณใช้โปรไฟล์บิลด์ Android XR Unity จะกำหนดค่า Vulkan เป็น Graphics API ซึ่งจะช่วยให้คุณเข้าถึงฟีเจอร์ Android XR ขั้นสูงทั้งหมดได้โดยไม่ต้องกำหนดค่าด้วยตนเอง

คุณสามารถยืนยันการตั้งค่า Graphics API ได้โดยไปที่ "แก้ไข" > "การตั้งค่าโปรเจ็กต์" > "โปรแกรมเล่น" > "แท็บ Android" > "การตั้งค่าอื่นๆ" > "Graphics API"

appentrypoint.png

ทำความเข้าใจระบบนิเวศของแพ็กเกจ

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

อาจฟังดูเหมือนเป็นสิ่งเดียวกัน แต่โปรดติดตามต่อไป

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


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


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

วิธีติดตั้งแพ็กเกจ

หากต้องการเพิ่มแพ็กเกจใหม่ ให้เปิดโปรเจ็กต์ใน Unity แล้วเลือก "หน้าต่าง" > "การจัดการแพ็กเกจ" > "Package Manager"

จากที่นี่ คุณจะติดตั้งแพ็กเกจเหล่านี้ได้จากแท็บ "Unity Registry"

packagemanager.png

คุณติดตั้งแพ็กเกจ Android XR สำหรับ Unity ผ่าน GitHub ได้โดยเลือกไอคอน ➕ แล้วเลือก "ติดตั้งแพ็กเกจจาก URL ของ Git" จากนั้นป้อน "https://github.com/android/android-xr-unity-package.git"

packagemanager2.png

ฟีเจอร์ OpenXR ที่จำเป็น

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

คุณเปิดใช้การตั้งค่า OpenXR สำหรับ Android ได้โดยไปที่ "แก้ไข" -> "การตั้งค่าโปรเจ็กต์" -> "การจัดการปลั๊กอิน XR" -> คลิก Android แล้วเปิดใช้ OpenXR

xrpluginmgmt.png

จากนั้นเราต้องเปิดใช้การรองรับ "การรองรับ Android XR" และจะครอบคลุมฟีเจอร์ OpenXR อื่นๆ ตามที่ต้องการ ตอนนี้เราเพียงแค่ต้องเปิดใช้การรองรับ Android XR

อินพุต

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

xrinteractiontoolkit.png

เมื่อติดตั้ง XR Hands และ XR Interactive Toolkit ทั้ง 2 อย่างแล้ว ฉันขอแนะนำให้คุณนำเข้า Starter Assets และ Hands Interaction Demo จากนั้นคุณต้องเปิดใช้โปรไฟล์การโต้ตอบด้วยมือและKhronos Simple Controller รวมถึงเปิดใช้ฟีเจอร์ระบบย่อยการติดตามการเคลื่อนไหวของมือและฟีเจอร์การเล็งด้วยการติดตามการเคลื่อนไหวของมือของ Meta

คุณแก้ไขการตั้งค่าเหล่านี้ได้โดยไปที่ "แก้ไข" > "การตั้งค่าโปรเจ็กต์" > "การจัดการปลั๊กอิน XR" > "OpenXR"

profiles.png

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

วิธีที่ง่ายที่สุดในการเพิ่ม Prefab นี้คือการนำเข้าจากเดโมการผสานรวมมือที่เรานำเข้าก่อนหน้านี้ ซึ่งดูได้ที่นี่ "ชุดเครื่องมือการผสานรวมมือ" > "การโต้ตอบด้วยมือ" > "Prefab" > "XR Origin"

prefabs.png

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

ความเป็นส่วนตัวและสิทธิ์: การสร้างความไว้วางใจของผู้ใช้

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

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

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

หมายเหตุ: หากต้องการดูรายการส่วนขยายทั้งหมดที่ต้องใช้สิทธิ์ โปรดดูข้อมูลในเว็บไซต์นักพัฒนา XR

  const string k_Permission = "android.permission.HAND_TRACKING";

#if UNITY_ANDROID
void Start()
{
    if (!Permission.HasUserAuthorizedPermission(k_Permission))
    {
        var callbacks = new PermissionCallbacks();
        callbacks.PermissionDenied += OnPermissionDenied;
        callbacks.PermissionGranted += OnPermissionGranted;
        
        Permission.RequestUserPermission(k_Permission, callbacks);
    }
}

void OnPermissionDenied(string permission)
{
    // handle denied permission
}


void OnPermissionGranted(string permission)
{
    // handle granted permission
}

#endif // UNITY_ANDROID

การปรับปรุงคุณภาพของภาพด้วยเลเยอร์การจัดองค์ประกอบ

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

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


นอกจากข้อความแล้ว ยังแสดงวิดีโอ รูปภาพ และองค์ประกอบ UI ที่มีคุณภาพสูงขึ้นมากด้วย โดยทำได้ด้วยการใช้การรองรับเลเยอร์ Compositor ของรันไทม์แบบเนทีฟ

หากต้องการเปิดเลเยอร์การเรียบเรียง ให้เปิด Package Manager เลือก "Unity Register" แล้วติดตั้ง "XR Composition Layers"

สร้างและเรียกใช้

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

ขั้นตอนต่อไป: พัฒนาทักษะของคุณ

ตอนนี้คุณได้ตั้งค่าสภาพแวดล้อมในการพัฒนาซอฟต์แวร์ Android XR และเข้าใจแนวคิดหลักแล้ว ต่อไปนี้คือขั้นตอนถัดไปในการเดินทางเพื่อพัฒนา XR

แหล่งข้อมูลที่จำเป็นสำหรับการเรียนรู้ต่อไป

ตัวอย่างโปรเจ็กต์ที่ควรสำรวจ

เขียนโดย

อ่านต่อ