คู่มือนี้จะแสดงวิธีใช้ Google Cardboard XR Plugin สำหรับ Unity เพื่อสร้างประสบการณ์ Virtual Reality (VR) ของคุณเอง
คุณใช้ Cardboard SDK เพื่อเปลี่ยนโทรศัพท์มือถือให้เป็นแพลตฟอร์ม VR ได้ อุปกรณ์เคลื่อนที่สามารถแสดงฉาก 3 มิติด้วยการแสดงภาพแบบสเตอริโอ ติดตามและตอบสนอง ต่อการเคลื่อนไหวของศีรษะ รวมถึงโต้ตอบกับแอปได้โดยการตรวจหาเมื่อผู้ใช้กดปุ่ม ของโปรแกรมดู
หากต้องการเริ่มต้นใช้งาน คุณจะต้องใช้ HelloCardboard ซึ่งเป็นเกมสาธิตที่แสดง ฟีเจอร์หลักของ Cardboard SDK ในเกม ผู้ใช้จะมองไปรอบๆ โลกเสมือนเพื่อค้นหาและรวบรวมวัตถุ โดยจะแสดงวิธีการต่อไปนี้
- ตั้งค่าสภาพแวดล้อมในการพัฒนาซอฟต์แวร์
- ดาวน์โหลดและสร้างแอปเดโม
- สแกนคิวอาร์โค้ดของ Cardboard Viewer เพื่อบันทึกพารามิเตอร์
- ติดตามการเคลื่อนไหวของศีรษะผู้ใช้
- แสดงภาพสามมิติโดยตั้งค่าการบิดเบือนที่ถูกต้องสำหรับแต่ละตา
- เปิดและปิดโหมด VR
ตั้งค่าสภาพแวดล้อมในการพัฒนาซอฟต์แวร์
ข้อกำหนดของซอฟต์แวร์
- Unity 6000.0.23f1 ขึ้นไป
- อย่าลืมรวมการรองรับบิลด์ Android และ iOS ในระหว่างการติดตั้ง
- โปรดติดตั้งแพตช์เวอร์ชัน 23f1 ขึ้นไป
- ต้องติดตั้ง Git และต้องมีไฟล์ที่เรียกใช้งานได้ของ
gitในตัวแปรสภาพแวดล้อมPATHดูรายละเอียดเพิ่มเติมได้ในเอกสารการรองรับ Git ของ Package Manager ของ Unity
นำเข้า SDK และสร้างโปรเจ็กต์ใหม่
ทำตามขั้นตอนต่อไปนี้เพื่อนำเข้า Unity SDK และสร้างโปรเจ็กต์ใหม่
- เปิด Unity แล้วสร้างโปรเจ็กต์ 3 มิติใหม่
- ใน Unity ให้ไปที่หน้าต่าง > Package Manager
- คลิก + แล้วเลือกเพิ่มแพ็กเกจจาก URL ของ Git
- วาง
https://github.com/googlevr/cardboard-xr-plugin.gitลงในช่องป้อนข้อความ
ควรเพิ่มแพ็กเกจลงในแพ็กเกจที่ติดตั้ง - ไปที่แพ็กเกจ Google Cardboard XR Plugin สำหรับ Unity ในส่วนตัวอย่าง ให้เลือกนำเข้าไปยังโปรเจ็กต์
โหลดชิ้นงานตัวอย่าง ลงในAssets/Samples/Google Cardboard/<version>/Hello Cardboard
กำหนดค่าฉาก HelloCardboard
- ไปที่
Assets/Samples/Google Cardboard/<version>/Hello Cardboard/Scenesเลือกเพิ่มฉากที่เปิด แล้วเลือก HelloCardboard เพื่อเปิดฉากตัวอย่าง - เปิดเมนูเลเยอร์ แล้วเลือกแก้ไขเลเยอร์...
- กำหนดเลเยอร์ใหม่ชื่อ "Interactive"
- คลิก GameObject Treasure เพื่อเปิดหน้าต่าง Inspector ตั้งค่าเลเยอร์เป็น "โต้ตอบได้" หากหน้าต่างป๊อปอัปปรากฏขึ้นเพื่อถามว่าคุณต้องการ ตั้งค่าเลเยอร์เป็นแบบอินเทอร์แอกทีฟสำหรับออบเจ็กต์ย่อยทั้งหมดด้วยหรือไม่ ให้คลิก "ใช่ เปลี่ยนออบเจ็กต์ย่อย"
- คลิก GameObject Player > Camera > CardboardReticlePointer เพื่อเปิดหน้าต่าง Inspector ในสคริปต์ "Cardboard reticle pointer" ให้เลือก "Interactive" เป็น Reticle Interaction Layer Mask
กำหนดการตั้งค่าบิลด์ Android
ไปที่ไฟล์ > การตั้งค่าบิลด์
- เลือก Android แล้วเลือกเปลี่ยนแพลตฟอร์ม
- เลือกเพิ่มฉากเปิด แล้วเลือก HelloCardboard
การตั้งค่าเพลเยอร์
ไปที่แก้ไข > การตั้งค่าโปรเจ็กต์...
กำหนดค่าการตั้งค่าความละเอียดและการนำเสนอ
ไปที่เพลเยอร์ > ความละเอียดและการนำเสนอ
- ตั้งค่าการวางแนวเริ่มต้นเป็นแนวนอนซ้ายหรือแนวนอนขวา
- ปิดใช้การเว้นระยะเฟรมที่เพิ่มประสิทธิภาพ
กำหนดการตั้งค่าอื่นๆ
ไปที่เพลเยอร์ > การตั้งค่าอื่นๆ
- เลือก
OpenGLES2,OpenGLES3หรือVulkanหรือการผสมผสานใดๆ ใน Graphics API - เลือก
Android 8.0 'Oreo' (API level 26)ขึ้นไปในระดับ API ขั้นต่ำ - เลือกระดับ
API level 35ขึ้นไปในระดับ API เป้าหมาย - เลือก
IL2CPPใน Scripting Backend - เลือกสถาปัตยกรรมที่ต้องการโดยเลือก
ARMv7,ARM64หรือทั้ง 2 อย่างใน สถาปัตยกรรมเป้าหมาย - เลือก
Requireในการเข้าถึงอินเทอร์เน็ต - เลือก
Input System Package (New)ในการจัดการอินพุตที่ใช้งานอยู่ - ระบุโดเมนของบริษัทในส่วนชื่อแพ็กเกจ
- หากเลือก
Vulkanเป็น Graphics API ให้ทำดังนี้- ล้างช่องทำเครื่องหมายใช้การหมุนจอแสดงผลระหว่างการแสดงผลในการตั้งค่า Vulkan
- เลือก
ETC2ในรูปแบบการบีบอัดพื้นผิว
- เลือก
Activityและล้างGameActivityในจุดแรกเข้าของแอปพลิเคชัน
กำหนดการตั้งค่าการเผยแพร่
ไปที่เพลเยอร์ > การตั้งค่าการเผยแพร่
- ในส่วนสร้าง ให้เลือก
Custom Main Gradle TemplateและCustom Gradle Properties Template เพิ่มบรรทัดต่อไปนี้ในส่วนทรัพยากร Dependency ของ
Assets/Plugins/Android/mainTemplate.gradleimplementation '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.propertiesandroid.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 - ระบุโดเมนของบริษัทในส่วนชื่อแพ็กเกจ
- ดู
Top Edge,Left EdgeและRight Edgeในเลื่อนท่าทางสัมผัสของระบบที่ขอบ
กำหนดการตั้งค่าการจัดการปลั๊กอิน XR
ไปที่การจัดการปลั๊กอิน XR
- เลือก
Cardboard XR Pluginในส่วนผู้ให้บริการปลั๊กอิน
สร้างโปรเจ็กต์
ไปที่ไฟล์ > การตั้งค่าบิลด์
- เลือกสร้างหรือสร้างและเรียกใช้
จัดกึ่งกลางใหม่
Cardboard SDK ช่วยให้คุณ
จัดกึ่งกลางเครื่องมือติดตามศีรษะโดยใช้
Recenter()
ลองใช้โดยทำตามขั้นตอนต่อไปนี้โดยใช้แอปพลิเคชันตัวอย่าง
- ย้ายอุปกรณ์ไปยังตำแหน่งที่ต้องการจัดกึ่งกลางใหม่ (ใช้เป็นท่าทางศีรษะที่มองไปข้างหน้าใหม่)
- กดทริกเกอร์ของอุปกรณ์ Cardboard ค้างไว้อย่างน้อย 3 วินาที
- ปล่อยทริกเกอร์
- ตอนนี้ท่าทางเริ่มต้นจะอยู่ในทิศทางที่กล้องชี้ไป
เปิดและปิดโหมด VR
Unity XR Plugin Management API ช่วยให้คุณเปิดหรือปิดโหมด VR สำหรับ Google Cardboard XR Plugin สำหรับ Unity ได้ เอกสารประกอบสำหรับผู้ใช้ปลายทาง และตัวอย่างการใช้งานมีอยู่ในเอกสารประกอบสำหรับผู้ใช้ปลายทางของ Unity
ฉาก VrMode ในตัวอย่าง HelloCardboard แสดงการใช้งานพื้นฐานของ API ที่กล่าวถึงข้างต้น
ในฉากนี้ คุณปิดโหมด VR ได้โดยแตะออก
และเปิดอีกครั้งได้
เพียงแตะที่ใดก็ได้บนหน้าจอ ดูรายละเอียดเกี่ยวกับวิธีดำเนินการได้ที่
VrModeController.cs