คู่มือนี้จะแสดงวิธีใช้ปลั๊กอิน Google Cardboard XR สำหรับ Unity สำหรับ Unity เพื่อสร้างประสบการณ์ Virtual Reality (VR) ของคุณเอง
คุณสามารถใช้ Cardboard SDK เพื่อเปลี่ยนโทรศัพท์มือถือให้เป็นแพลตฟอร์ม VR ได้ สมาร์ทโฟนสามารถแสดงฉาก 3 มิติด้วยการแสดงภาพสามมิติ ติดตามและตอบสนองต่อการเคลื่อนไหวของศีรษะ และโต้ตอบกับแอปด้วยการตรวจจับเมื่อผู้ใช้กดปุ่มของผู้ชม
ในการเริ่มต้นใช้งาน คุณจะใช้ HelloCardboard ซึ่งเป็นเกมเดโมที่สาธิตฟีเจอร์หลักของ Cardboard SDK ในเกม ผู้ใช้จะมองไปรอบๆ โลกเสมือนเพื่อค้นหาและสะสมวัตถุ โดยจะแสดงวิธีการต่อไปนี้
- ตั้งค่าสภาพแวดล้อมในการพัฒนาซอฟต์แวร์
- ดาวน์โหลดและสร้างแอปเดโม
- สแกนคิวอาร์โค้ดของแว่น Cardboard เพื่อบันทึกพารามิเตอร์
- ติดตามการเคลื่อนไหวศีรษะของผู้ใช้
- แสดงภาพสามมิติโดยการตั้งค่าความผิดเพี้ยนที่ถูกต้องสำหรับตาแต่ละข้าง
- เปิดและปิดโหมด VR
ตั้งค่าสภาพแวดล้อมในการพัฒนาซอฟต์แวร์
ข้อกำหนดของซอฟต์แวร์
- Unity 2021.3.32f1 ขึ้นไป
- อย่าลืมระบุการสนับสนุนบิลด์ของ Android และ iOS ในระหว่างการติดตั้ง
- ต้องติดตั้ง Git และไฟล์ปฏิบัติการ
git
ต้องอยู่ในตัวแปรสภาพแวดล้อมPATH
ดูรายละเอียดเพิ่มเติมได้ในเอกสารการสนับสนุน Git ของตัวจัดการแพ็กเกจของ Unity
นำเข้า SDK และสร้างโปรเจ็กต์ใหม่
ทำตามขั้นตอนต่อไปนี้เพื่อนำเข้า Unity SDK และสร้างโปรเจ็กต์ใหม่
- เปิด Unity แล้วสร้างโปรเจ็กต์ 3D ใหม่
- ใน Unity ให้ไปที่หน้าต่าง > เครื่องมือจัดการแพ็กเกจ
- คลิก + และเลือกเพิ่มแพ็กเกจจาก URL ของ git
- วาง
https://github.com/googlevr/cardboard-xr-plugin.git
ลงในช่องป้อนข้อความ
ควรเพิ่มแพ็กเกจไปยังแพ็กเกจที่ติดตั้งไว้ - ไปที่แพ็กเกจปลั๊กอิน Google Cardboard XR สำหรับ Unity ในส่วนตัวอย่าง ให้เลือกนำเข้าลงในโปรเจ็กต์
เนื้อหาตัวอย่างควรโหลดลงในAssets/Samples/Google Cardboard/<version>/Hello Cardboard
การกำหนดค่าโหมด HelloCardboard
- ไปที่
Assets/Samples/Google Cardboard/<version>/Hello Cardboard/Scenes
แล้วเลือก Add Open Scenes แล้วเลือก HelloCardboard เพื่อเปิดฉากตัวอย่าง - เปิดเมนูเลเยอร์ และเลือกแก้ไขเลเยอร์...
- กำหนดเลเยอร์ใหม่ที่เรียกว่า "อินเทอร์แอกทีฟ"
- คลิก GameObject Treasure เพื่อเปิดหน้าต่างเครื่องมือตรวจสอบ ตั้งค่าเลเยอร์เป็น "อินเทอร์แอกทีฟ" หากหน้าต่างป๊อปอัปปรากฏขึ้นและถามว่าคุณต้องการตั้งค่าเลเยอร์ให้เป็นแบบอินเทอร์แอกทีฟสำหรับออบเจ็กต์ย่อยทั้งหมดด้วยหรือไม่ ให้คลิก "ใช่ เปลี่ยนรายการเด็ก"
- คลิกที่โปรแกรมเล่น > กล้อง > CardboardReticlePointer GameObject เพื่อเปิดหน้าต่างเครื่องมือตรวจสอบ ในสคริปต์ "ตัวชี้ Carboard reticle" ให้เลือก "อินเทอร์แอกทีฟ" เป็นมาสก์เลเยอร์การโต้ตอบ Reticle
การกำหนดการตั้งค่าโปรเจ็กต์ Android
ไปที่ไฟล์ > การตั้งค่าบิลด์
- เลือก Android แล้วเลือกเปลี่ยนแพลตฟอร์ม
- เลือก Add Open Scenes แล้วเลือก HelloCardboard
การตั้งค่าโปรแกรมเล่น
ความละเอียดและการนำเสนอ
ไปที่การตั้งค่าโปรเจ็กต์ > โปรแกรมเล่น > ความละเอียดและงานนำเสนอ
- ตั้งค่าการวางแนวเริ่มต้นเป็นแนวนอนซ้ายหรือแนวนอนขวา
- ปิดใช้การกำหนดอัตราเฟรมที่เพิ่มประสิทธิภาพ
การตั้งค่าอื่น
ไปที่การตั้งค่าโปรเจ็กต์ > โปรแกรมเล่น > การตั้งค่าอื่นๆ
- เลือก
OpenGLES2
,OpenGLES3
หรือVulkan
หรือทั้ง 2 อย่างรวมกันใน Graphics API - เลือก
Android 8.0 'Oreo' (API level 26)
ขึ้นไปในระดับ API ขั้นต่ำ - เลือก
API level 33
หรือสูงกว่าในระดับ API เป้าหมาย - เลือก
IL2CPP
ในแบ็กเอนด์สคริปต์ - เลือกสถาปัตยกรรมที่ต้องการโดยเลือก
ARMv7
,ARM64
หรือทั้ง 2 แบบในสถาปัตยกรรมเป้าหมาย - เลือก
Require
ในการเข้าถึงอินเทอร์เน็ต - ระบุโดเมนบริษัทของคุณในชื่อแพ็กเกจ
- หากเลือก
Vulkan
เป็น Graphics API ให้ทำดังนี้- ยกเลิกการเลือกช่องทำเครื่องหมายใช้การหมุนจอแสดงผลระหว่างการแสดงผลในการตั้งค่า Vulkan
- หากเวอร์ชัน Unity คือ 2021.2 ขึ้นไป ให้เลือก
ETC2
ในรูปแบบการบีบอัดพื้นผิว
- หากเวอร์ชัน Unity คือ 2023.1 ขึ้นไป ให้เลือก
Activity
และล้างGameActivity
ในจุดแรกเข้าของแอปพลิเคชัน
การตั้งค่าการเผยแพร่
ไปที่การตั้งค่าโปรเจ็กต์ > โปรแกรมเล่น > การตั้งค่าการเผยแพร่
- ในส่วน สร้าง ให้เลือก
Custom Main Gradle Template
และCustom Gradle Properties Template
เพิ่มบรรทัดต่อไปนี้ลงในส่วนทรัพยากร Dependency ของ
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.6.1' 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
ในส่วน Plug-in Providers
สร้างโปรเจ็กต์
ไปที่ไฟล์ > การตั้งค่าบิลด์
- เลือก Build หรือเลือกอุปกรณ์และเลือก Build and Run
การกำหนดการตั้งค่าโปรเจ็กต์ iOS
ไปที่ไฟล์ > การตั้งค่าบิลด์
- เลือก iOS แล้วเลือกเปลี่ยนแพลตฟอร์ม
- เลือก Add Open Scenes แล้วเลือก 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
ในส่วน Plug-in Providers
สร้างโปรเจ็กต์
ไปที่ไฟล์ > การตั้งค่าบิลด์
- เลือก สร้าง หรือ สร้างและเรียกใช้
กำลังจัดกึ่งกลางใหม่
Cardboard SDK ช่วยให้คุณจัดกึ่งกลางอุปกรณ์ติดตามศีรษะอีกครั้งโดยใช้ Recenter()
ทำตามขั้นตอนต่อไปนี้เพื่อลองใช้งานโดยใช้แอปพลิเคชันตัวอย่าง:
- เลื่อนอุปกรณ์ไปยังตำแหน่งที่คุณต้องการจัดกึ่งกลางใหม่ (ใช้เป็นท่าโพสศีรษะใหม่มองไปข้างหน้า)
- กดทริกเกอร์ของอุปกรณ์ Cardboard ค้างไว้อย่างน้อย 3 วินาที
- ปล่อยทริกเกอร์
- ท่าทางเริ่มต้นจะอยู่ในทิศทางที่กล้องชี้ไป
การเปิดและปิดโหมด VR
API การจัดการปลั๊กอิน Unity XR ช่วยให้คุณเปิดหรือปิดโหมด VR สำหรับปลั๊กอิน Google Cardboard XR สำหรับ Unity ได้ เอกสารสำหรับผู้ใช้ปลายทางและตัวอย่างการใช้งานจะอยู่ในเอกสารสำหรับผู้ใช้ปลายทางของ Unity
โหมด VrMode ในตัวอย่าง HelloCardboard แสดงการใช้งาน API ที่กล่าวถึงข้างต้น ในฉากนี้ คุณสามารถปิดโหมด VR ได้โดยแตะออก และเปิดอีกครั้งได้ เพียงแค่แตะที่ใดก็ได้บนหน้าจอ ดูรายละเอียดเกี่ยวกับประสิทธิภาพได้ที่ VrModeController.cs