คู่มือนี้แสดงวิธีใช้ปลั๊กอิน XR ของ Google Cardboard สำหรับ 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 Plugin for Unity ใน
ส่วนตัวอย่าง ให้เลือกนำเข้าในโปรเจ็กต์
เนื้อหาตัวอย่าง ควรโหลดลงในAssets/Samples/Google Cardboard/<version>/Hello Cardboard
กำลังกำหนดค่าฉาก HelloCardboard
- ไปที่
Assets/Samples/Google Cardboard/<version>/Hello Cardboard/Scenes
เลือกเพิ่มฉากแบบเปิด แล้วเลือก HelloCardboard เพื่อเปิดฉากตัวอย่าง - เปิดเมนูเลเยอร์และเลือกแก้ไขเลเยอร์...
- กำหนดเลเยอร์ใหม่ที่เรียกว่า "อินเทอร์แอกทีฟ"
- คลิก GameObject Treasure เพื่อเปิดหน้าต่างเครื่องมือตรวจสอบ ตั้งค่า ให้เป็น "อินเทอร์แอกทีฟ" ถ้าหน้าต่างป๊อปอัปปรากฏขึ้น ถามว่าคุณต้องการ ตั้งค่าเลเยอร์เป็นอินเทอร์แอคทีฟสำหรับออบเจ็กต์ย่อยทั้งหมดด้วย ให้คลิก "ใช่ เปลี่ยนเด็ก"
- คลิกปุ่มโปรแกรมเล่น > กล้อง > CardboardReticlePointer GameObject สำหรับ เปิดหน้าต่างเครื่องมือตรวจสอบ ใน "เคอร์เซอร์เป้าแบบ Carboard" สคริปต์ เลือก "อินเทอร์แอกทีฟ" เป็น Reticle Interaction Layer Mask
การกำหนดการตั้งค่าโปรเจ็กต์ Android
ไปที่ไฟล์ > การตั้งค่าบิลด์
- เลือก Android แล้วเลือก Switch Platform
- เลือกเพิ่มฉากแบบเปิด แล้วเลือก 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
ในการเข้าถึงอินเทอร์เน็ต - ระบุโดเมนบริษัทของคุณในชื่อแพ็กเกจ
- หากเลือก
Vulkan
เป็น Graphics API:- ยกเลิกการเลือกช่องทำเครื่องหมายใช้การหมุนจอแสดงผลระหว่างการแสดงผลใน Vulkan การตั้งค่า
- หาก Unity เวอร์ชัน 2021.2 ขึ้นไป ให้เลือก
ETC2
ใน Texture รูปแบบการบีบอัด
- หาก Unity เวอร์ชัน 2023.1 ขึ้นไป ให้เลือก
Activity
และล้างข้อมูลGameActivity
ใน Application Entry Point
การตั้งค่าการเผยแพร่
ไปที่การตั้งค่าโปรเจ็กต์ > โปรแกรมเล่น > การตั้งค่าการเผยแพร่
- ในส่วนสร้าง ให้เลือก
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 Plug-in Management
- เลือก
Cardboard XR Plugin
ในส่วนผู้ให้บริการปลั๊กอิน
สร้างโปรเจ็กต์
ไปที่ไฟล์ > การตั้งค่าบิลด์
- เลือกสร้าง หรือเลือกอุปกรณ์ แล้วเลือกสร้างและเรียกใช้
การกำหนดการตั้งค่าโปรเจ็กต์ iOS
ไปที่ไฟล์ > การตั้งค่าบิลด์
- เลือก iOS แล้วเลือกเปลี่ยนแพลตฟอร์ม
- เลือกเพิ่มฉากแบบเปิด แล้วเลือก HelloCardboard
การตั้งค่าโปรแกรมเล่น
ความละเอียดและการนำเสนอ
ไปที่การตั้งค่าโปรเจ็กต์ > โปรแกรมเล่น > ความละเอียดและการนำเสนอ
- ตั้งค่าการวางแนวเริ่มต้นเป็นแนวนอนซ้ายหรือแนวนอน ขวา
การตั้งค่าอื่น
ไปที่การตั้งค่าโปรเจ็กต์ > โปรแกรมเล่น > การตั้งค่าอื่นๆ
- ในคำอธิบายการใช้งานกล้อง ให้เขียนว่า
Cardboard SDK requires camera permission to read the QR code (required to get the encoded device parameters).
- ใน Target เวอร์ชัน iOS ต่ำสุด ให้เขียน
12.0
- ระบุโดเมนบริษัทของคุณในชื่อแพ็กเกจ
การตั้งค่าการจัดการปลั๊กอิน XR
ไปที่การตั้งค่าโปรเจ็กต์ > XR Plug-in Management
- เลือก
Cardboard XR Plugin
ในส่วนผู้ให้บริการปลั๊กอิน
สร้างโปรเจ็กต์
ไปที่ไฟล์ > การตั้งค่าบิลด์
- เลือกสร้างหรือสร้างและเรียกใช้
กำลังจัดกึ่งกลางใหม่
Cardboard SDK ช่วยให้คุณทำสิ่งต่อไปนี้ได้
จัดกึ่งกลางศีรษะติดตามโดยใช้
Recenter()
ทำตามขั้นตอนต่อไปนี้เพื่อลองใช้งานโดยใช้แอปพลิเคชันตัวอย่าง:
- ย้ายอุปกรณ์ไปยังตำแหน่งที่ต้องการจัดกึ่งกลางใหม่ (ใช้รูปโฉมใหม่ โพสท่าศีรษะไปข้างหน้า)
- กดทริกเกอร์ของอุปกรณ์ Cardboard ค้างไว้อย่างน้อย 3 วินาที
- ปล่อยทริกเกอร์
- ตอนนี้ท่าทางเริ่มต้นอยู่ในทิศทางที่กล้องเล็งแล้ว
การเปิดและปิดโหมด VR
การจัดการปลั๊กอิน Unity XR API ช่วยให้คุณเปลี่ยน เปิดหรือปิดโหมด VR สำหรับปลั๊กอิน Google Cardboard XR สำหรับ Unity เอกสารสำหรับผู้ใช้ปลายทาง และตัวอย่างการใช้งานอยู่ในผู้ใช้ปลายทางของ Unity เอกสารประกอบ
ฉาก VrMode ในตัวอย่าง HelloCardboard แสดงการใช้งานพื้นฐานของแท็ก API ที่กล่าวถึงข้างต้น ในฉากนี้ คุณสามารถปิดโหมด VR ได้โดยแตะออก และเปิดได้อีกครั้งในเวลาเพียง แตะที่ใดก็ได้บนหน้าจอ ตรวจสอบ VrModeController.cs เพื่อดูรายละเอียดประสิทธิภาพ