คู่มือนี้จะแสดงวิธีใช้ Google Cardboard XR Plugin for Unity ใน Unity เพื่อสร้างประสบการณ์ Virtual Reality (VR) ของคุณเอง
คุณใช้ Cardboard SDK เพื่อเปลี่ยนโทรศัพท์มือถือให้เป็นแพลตฟอร์ม VR ได้ สมาร์ทโฟนสามารถแสดงฉาก 3 มิติด้วยโหมดแสดงภาพสเตอริโอสโคป ติดตามและตอบสนองการเคลื่อนไหวของศีรษะ รวมถึงโต้ตอบกับแอปโดยการตรวจจับเมื่อผู้ใช้กดปุ่มแว่นตา
ในการเริ่มต้นใช้งาน คุณจะใช้ HelloCardboard ซึ่งเป็นเกมเดโมที่แสดงฟีเจอร์หลักของ Cardboard SDK ในเกม ผู้ใช้จะมองไปรอบๆ โลกเสมือนจริงเพื่อค้นหาและรวบรวมวัตถุ โดยจะแสดงวิธีต่อไปนี้
- ตั้งค่าสภาพแวดล้อมการพัฒนาซอฟต์แวร์
- ดาวน์โหลดและสร้างแอปสาธิต
- สแกนคิวอาร์โค้ดของแว่น Cardboard เพื่อบันทึกพารามิเตอร์
- ติดตามการเคลื่อนไหวของศีรษะผู้ใช้
- แสดงผลภาพสเตอริโอสโคปโดยตั้งค่าการบิดเบือนที่ถูกต้องสำหรับดวงตาแต่ละข้าง
- เปิดและปิดโหมด VR
ตั้งค่าสภาพแวดล้อมการพัฒนา
ข้อกำหนดของซอฟต์แวร์
- Unity 2021.3.44f1 ขึ้นไป
- อย่าลืมใส่การรองรับบิลด์ Android และ iOS ในระหว่างการติดตั้ง
- โปรดตรวจสอบว่าได้ติดตั้งแพตช์เวอร์ชัน 44f1 ขึ้นไป
- ต้องติดตั้ง Git และไฟล์ปฏิบัติการ
git
ต้องอยู่ในตัวแปรสภาพแวดล้อมPATH
ดูรายละเอียดเพิ่มเติมได้ที่เอกสารการสนับสนุน git ของเครื่องมือจัดการแพ็กเกจของ Unity
นําเข้า SDK และสร้างโปรเจ็กต์ใหม่
ทําตามขั้นตอนต่อไปนี้เพื่อนําเข้า Unity SDK และสร้างโปรเจ็กต์ใหม่
- เปิด Unity และสร้างโปรเจ็กต์ 3D ใหม่
- ใน Unity ให้ไปที่หน้าต่าง > เครื่องมือจัดการแพ็กเกจ
- คลิก + แล้วเลือกเพิ่มแพ็กเกจจาก URL ของ Git
- วาง
https://github.com/googlevr/cardboard-xr-plugin.git
ลงในช่องป้อนข้อความ
ควรเพิ่มแพ็กเกจลงในแพ็กเกจที่ติดตั้ง - ไปที่แพ็กเกจ Google Cardboard XR Plugin for Unity ในส่วนแท็บลองฟัง ให้เลือกนําเข้าไปยังโปรเจ็กต์
ชิ้นงานตัวอย่างควรโหลดลงในAssets/Samples/Google Cardboard/<version>/Hello Cardboard
การกำหนดค่าฉาก HelloCardboard
- ไปที่
Assets/Samples/Google Cardboard/<version>/Hello Cardboard/Scenes
เลือกเพิ่มฉากที่เปิดอยู่ แล้วเลือก HelloCardboard เพื่อเปิดฉากตัวอย่าง - เปิดเมนูเลเยอร์ แล้วเลือกแก้ไขเลเยอร์...
- กําหนดเลเยอร์ใหม่ชื่อ "อินเทอร์แอกทีฟ"
- คลิก GameObject Treasure เพื่อเปิดหน้าต่างเครื่องมือตรวจสอบ ตั้งค่าเลเยอร์เป็น "อินเทอร์แอกทีฟ" หากหน้าต่างป๊อปอัปปรากฏขึ้นถามว่าคุณต้องการตั้งค่าเลเยอร์เป็น "อินเทอร์แอกทีฟ" สำหรับออบเจ็กต์ย่อยทั้งหมดด้วยหรือไม่ ให้คลิก "ใช่ เปลี่ยนออบเจ็กต์ย่อย"
- คลิก GameObject Player > Camera > CardboardReticlePointer เพื่อเปิดหน้าต่างเครื่องมือตรวจสอบ ในสคริปต์ "เคอร์เซอร์เล็งแบบ Cardboard" ให้เลือก Interactive เป็นมาสก์เลเยอร์การโต้ตอบของเล็ง
การกำหนดการตั้งค่าโปรเจ็กต์ Android
ไปที่ไฟล์ > การตั้งค่าการสร้าง
- เลือก Android แล้วเลือกเปลี่ยนแพลตฟอร์ม
- เลือกเพิ่มฉากเปิด แล้วเลือก HelloCardboard
การตั้งค่าโปรแกรมเล่น
การแก้ปัญหาและการนำเสนอ
ไปที่การตั้งค่าโปรเจ็กต์ > โปรแกรมเล่น > ความละเอียดและการแสดงผล
- ตั้งค่าการวางแนวเริ่มต้นเป็นแนวนอนซ้ายหรือแนวนอนขวา
- ปิดใช้การปรับอัตราการแสดงเฟรมแบบเพิ่มประสิทธิภาพ
การตั้งค่าอื่น
ไปที่การตั้งค่าโปรเจ็กต์ > โปรแกรมเล่น > การตั้งค่าอื่นๆ
- เลือก
OpenGLES2
,OpenGLES3
หรือVulkan
หรือใช้ร่วมกันในGraphics API - เลือก
Android 8.0 'Oreo' (API level 26)
ขึ้นไปในระดับ API ขั้นต่ำ - เลือก
API level 33
ขึ้นไปในระดับ API เป้าหมาย - เลือก
IL2CPP
ใน Scripting Backend - เลือกสถาปัตยกรรมที่ต้องการโดยเลือก
ARMv7
,ARM64
หรือทั้ง 2 รายการในสถาปัตยกรรมเป้าหมาย - เลือก
Require
ในการเข้าถึงอินเทอร์เน็ต - เลือก
Input System Package (New)
ในการจัดการอินพุตที่ใช้งานอยู่ - ระบุโดเมนของบริษัทในส่วนชื่อแพ็กเกจ
- หากเลือก
Vulkan
เป็น Graphics API ให้ทำดังนี้- ยกเลิกการเลือกช่องทำเครื่องหมายใช้การหมุนจอแสดงผลระหว่างการแสดงผลในการตั้งค่า Vulkan
- หาก Unity เป็นเวอร์ชัน 2021.2 ขึ้นไป ให้เลือก
ETC2
ในรูปแบบการบีบอัดพื้นผิว
- หาก Unity เป็นเวอร์ชัน 2023.1 ขึ้นไป ให้เลือก
Activity
แล้วล้างGameActivity
ในApplication Entry Point
การตั้งค่าการเผยแพร่
ไปที่การตั้งค่าโปรเจ็กต์ > โปรแกรมเล่น > การตั้งค่าการเผยแพร่
- ในส่วนสร้าง ให้เลือก
Custom Main Gradle Template
และCustom Gradle Properties Template
เพิ่มบรรทัดต่อไปนี้ลงในส่วน dependencies ของ
Assets/Plugins/Android/mainTemplate.gradle
implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.gms:play-services-vision:20.1.3' implementation 'com.google.android.material:material:1.12.0' implementation 'com.google.protobuf:protobuf-javalite:3.19.4'
เพิ่มบรรทัดต่อไปนี้ลงใน
Assets/Plugins/Android/gradleTemplate.properties
android.enableJetifier=true android.useAndroidX=true
การตั้งค่าการจัดการปลั๊กอิน XR
ไปที่การตั้งค่าโปรเจ็กต์ > การจัดการปลั๊กอิน XR
- เลือก
Cardboard XR Plugin
ในส่วนผู้ให้บริการปลั๊กอิน
สร้างโปรเจ็กต์
ไปที่ไฟล์ > การตั้งค่าการสร้าง
- เลือกสร้าง หรือเลือกอุปกรณ์แล้วเลือกสร้างและเรียกใช้
การกำหนดการตั้งค่าโปรเจ็กต์ iOS
ไปที่ไฟล์ > การตั้งค่าการสร้าง
- เลือก iOS แล้วเลือกเปลี่ยนแพลตฟอร์ม
- เลือกเพิ่มฉากเปิด แล้วเลือก HelloCardboard
การตั้งค่าโปรแกรมเล่น
การแก้ปัญหาและการนำเสนอ
ไปที่การตั้งค่าโปรเจ็กต์ > โปรแกรมเล่น > ความละเอียดและการแสดงผล
- ตั้งค่าการวางแนวเริ่มต้นเป็นแนวนอนซ้ายหรือแนวนอนขวา
การตั้งค่าอื่น
ไปที่การตั้งค่าโปรเจ็กต์ > โปรแกรมเล่น > การตั้งค่าอื่นๆ
- ในคำอธิบายการใช้งานกล้อง ให้เขียน
Cardboard SDK requires camera permission to read the QR code (required to get the encoded device parameters).
- ในเวอร์ชัน iOS เป้าหมายขั้นต่ำ ให้เขียน
12.0
- ระบุโดเมนของบริษัทในส่วนชื่อแพ็กเกจ
การตั้งค่าการจัดการปลั๊กอิน XR
ไปที่การตั้งค่าโปรเจ็กต์ > การจัดการปลั๊กอิน XR
- เลือก
Cardboard XR Plugin
ในส่วนผู้ให้บริการปลั๊กอิน
สร้างโปรเจ็กต์
ไปที่ไฟล์ > การตั้งค่าการสร้าง
- เลือกสร้างหรือสร้างและเรียกใช้
การปรับจุดศูนย์กลางใหม่
Cardboard SDK ช่วยให้คุณศูนย์รวมอุปกรณ์ติดตามการเคลื่อนไหวของศีรษะได้โดยใช้ Recenter()
ทําตามขั้นตอนต่อไปนี้เพื่อลองใช้ด้วยแอปพลิเคชันตัวอย่าง
- ย้ายอุปกรณ์ไปยังตำแหน่งที่ต้องการจัดศูนย์ใหม่ (ใช้เป็นท่าทางศีรษะมองไปข้างหน้าใหม่)
- กดทริกเกอร์ของอุปกรณ์ Cardboard ค้างไว้อย่างน้อย 3 วินาที
- ปล่อยทริกเกอร์
- ตอนนี้ท่าทางเริ่มต้นอยู่ในทิศทางที่กล้องชี้ไป
วิธีเปิดและปิดโหมด VR
Unity XR Plugin Management API ช่วยให้คุณเปิดหรือปิดโหมด VR สำหรับปลั๊กอิน Google Cardboard XR สำหรับ Unity ได้ เอกสารประกอบสำหรับผู้ใช้ปลายทางและตัวอย่างการใช้งานมีอยู่ในเอกสารประกอบสำหรับผู้ใช้ปลายทางของ Unity
ฉาก VrMode ในตัวอย่าง HelloCardboard แสดงการใช้งานพื้นฐานของ API ข้างต้น ในฉากนี้ คุณสามารถปิดโหมด VR ได้โดยแตะออก
และเปิดโหมดอีกครั้งได้โดยแตะที่ใดก็ได้บนหน้าจอ ดูรายละเอียดเกี่ยวกับวิธีดำเนินการนี้ได้จาก VrModeController.cs