การเริ่มต้นใช้งาน Google Cardboard สำหรับ Unity อย่างรวดเร็ว

คู่มือนี้จะแสดงวิธีใช้ 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 และสร้างโปรเจ็กต์ใหม่

  1. เปิด Unity แล้วสร้างโปรเจ็กต์ 3 มิติใหม่
  2. ใน Unity ให้ไปที่หน้าต่าง > Package Manager
  3. คลิก + แล้วเลือกเพิ่มแพ็กเกจจาก URL ของ Git
  4. วาง https://github.com/googlevr/cardboard-xr-plugin.git ลงในช่องป้อนข้อความ
    ควรเพิ่มแพ็กเกจลงในแพ็กเกจที่ติดตั้ง
  5. ไปที่แพ็กเกจ Google Cardboard XR Plugin สำหรับ Unity ในส่วนตัวอย่าง ให้เลือกนำเข้าไปยังโปรเจ็กต์
    โหลดชิ้นงานตัวอย่าง ลงใน Assets/Samples/Google Cardboard/<version>/Hello Cardboard

กำหนดค่าฉาก HelloCardboard

  1. ไปที่ Assets/Samples/Google Cardboard/<version>/Hello Cardboard/Scenes เลือกเพิ่มฉากที่เปิด แล้วเลือก HelloCardboard เพื่อเปิดฉากตัวอย่าง
  2. เปิดเมนูเลเยอร์ แล้วเลือกแก้ไขเลเยอร์...
  3. กำหนดเลเยอร์ใหม่ชื่อ "Interactive"
  4. คลิก GameObject Treasure เพื่อเปิดหน้าต่าง Inspector ตั้งค่าเลเยอร์เป็น "โต้ตอบได้" หากหน้าต่างป๊อปอัปปรากฏขึ้นเพื่อถามว่าคุณต้องการ ตั้งค่าเลเยอร์เป็นแบบอินเทอร์แอกทีฟสำหรับออบเจ็กต์ย่อยทั้งหมดด้วยหรือไม่ ให้คลิก "ใช่ เปลี่ยนออบเจ็กต์ย่อย"
  5. คลิก GameObject Player > Camera > CardboardReticlePointer เพื่อเปิดหน้าต่าง Inspector ในสคริปต์ "Cardboard reticle pointer" ให้เลือก "Interactive" เป็น Reticle Interaction Layer Mask

กำหนดการตั้งค่าบิลด์ Android

ไปที่ไฟล์ > การตั้งค่าบิลด์

  1. เลือก Android แล้วเลือกเปลี่ยนแพลตฟอร์ม
  2. เลือกเพิ่มฉากเปิด แล้วเลือก HelloCardboard

การตั้งค่าเพลเยอร์

ไปที่แก้ไข > การตั้งค่าโปรเจ็กต์...

กำหนดค่าการตั้งค่าความละเอียดและการนำเสนอ

ไปที่เพลเยอร์ > ความละเอียดและการนำเสนอ

  1. ตั้งค่าการวางแนวเริ่มต้นเป็นแนวนอนซ้ายหรือแนวนอนขวา
  2. ปิดใช้การเว้นระยะเฟรมที่เพิ่มประสิทธิภาพ

กำหนดการตั้งค่าอื่นๆ

ไปที่เพลเยอร์ > การตั้งค่าอื่นๆ

  1. เลือก OpenGLES2, OpenGLES3 หรือ Vulkan หรือการผสมผสานใดๆ ใน Graphics API
  2. เลือก Android 8.0 'Oreo' (API level 26) ขึ้นไปในระดับ API ขั้นต่ำ
  3. เลือกระดับ API level 35 ขึ้นไปในระดับ API เป้าหมาย
  4. เลือก IL2CPP ใน Scripting Backend
  5. เลือกสถาปัตยกรรมที่ต้องการโดยเลือก ARMv7, ARM64 หรือทั้ง 2 อย่างใน สถาปัตยกรรมเป้าหมาย
  6. เลือก Require ในการเข้าถึงอินเทอร์เน็ต
  7. เลือก Input System Package (New) ในการจัดการอินพุตที่ใช้งานอยู่
  8. ระบุโดเมนของบริษัทในส่วนชื่อแพ็กเกจ
  9. หากเลือก Vulkan เป็น Graphics API ให้ทำดังนี้
    • ล้างช่องทำเครื่องหมายใช้การหมุนจอแสดงผลระหว่างการแสดงผลในการตั้งค่า Vulkan
    • เลือก ETC2 ในรูปแบบการบีบอัดพื้นผิว
  10. เลือก Activity และล้าง GameActivity ในจุดแรกเข้าของแอปพลิเคชัน

กำหนดการตั้งค่าการเผยแพร่

ไปที่เพลเยอร์ > การตั้งค่าการเผยแพร่

  1. ในส่วนสร้าง ให้เลือก Custom Main Gradle Template และ Custom Gradle Properties Template
  2. เพิ่มบรรทัดต่อไปนี้ในส่วนทรัพยากร 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.12.0'
      implementation 'com.google.protobuf:protobuf-javalite:3.19.4'
    
  3. เพิ่มบรรทัดต่อไปนี้ลงใน Assets/Plugins/Android/gradleTemplate.properties

      android.enableJetifier=true
      android.useAndroidX=true
    

กำหนดการตั้งค่าการจัดการปลั๊กอิน XR

ไปที่การจัดการปลั๊กอิน XR

  1. เลือก Cardboard XR Plugin ในส่วนผู้ให้บริการปลั๊กอิน

สร้างโปรเจ็กต์

ไปที่ไฟล์ > การตั้งค่าบิลด์

  1. เลือกสร้าง หรือเลือกอุปกรณ์ แล้วเลือกสร้างและเรียกใช้

กำหนดค่าการตั้งค่าโปรเจ็กต์ iOS

ไปที่ไฟล์ > การตั้งค่าบิลด์

  1. เลือก iOS แล้วเลือกเปลี่ยนแพลตฟอร์ม
  2. เลือกเพิ่มฉากเปิด แล้วเลือก HelloCardboard

การตั้งค่าเพลเยอร์

ไปที่แก้ไข > การตั้งค่าโปรเจ็กต์...

กำหนดค่าการตั้งค่าความละเอียดและการนำเสนอ

ไปที่เพลเยอร์ > ความละเอียดและการนำเสนอ

  1. ตั้งค่าการวางแนวเริ่มต้นเป็นแนวนอนซ้ายหรือแนวนอนขวา

กำหนดการตั้งค่าอื่นๆ

ไปที่เพลเยอร์ > การตั้งค่าอื่นๆ

  1. ในคำอธิบายการใช้งานกล้อง ให้เขียนว่า Cardboard SDK requires camera permission to read the QR code (required to get the encoded device parameters).
  2. ในเวอร์ชัน iOS ขั้นต่ำเป้าหมาย ให้เขียน 12.0
  3. ระบุโดเมนของบริษัทในส่วนชื่อแพ็กเกจ
  4. ดู Top Edge, Left Edge และ Right Edge ในเลื่อนท่าทางสัมผัสของระบบที่ขอบ

กำหนดการตั้งค่าการจัดการปลั๊กอิน XR

ไปที่การจัดการปลั๊กอิน XR

  1. เลือก Cardboard XR Plugin ในส่วนผู้ให้บริการปลั๊กอิน

สร้างโปรเจ็กต์

ไปที่ไฟล์ > การตั้งค่าบิลด์

  1. เลือกสร้างหรือสร้างและเรียกใช้

จัดกึ่งกลางใหม่

Cardboard SDK ช่วยให้คุณ จัดกึ่งกลางเครื่องมือติดตามศีรษะโดยใช้ Recenter()

ลองใช้โดยทำตามขั้นตอนต่อไปนี้โดยใช้แอปพลิเคชันตัวอย่าง

  1. ย้ายอุปกรณ์ไปยังตำแหน่งที่ต้องการจัดกึ่งกลางใหม่ (ใช้เป็นท่าทางศีรษะที่มองไปข้างหน้าใหม่)
  2. กดทริกเกอร์ของอุปกรณ์ Cardboard ค้างไว้อย่างน้อย 3 วินาที
  3. ปล่อยทริกเกอร์
  4. ตอนนี้ท่าทางเริ่มต้นจะอยู่ในทิศทางที่กล้องชี้ไป

เปิดและปิดโหมด VR

Unity XR Plugin Management API ช่วยให้คุณเปิดหรือปิดโหมด VR สำหรับ Google Cardboard XR Plugin สำหรับ Unity ได้ เอกสารประกอบสำหรับผู้ใช้ปลายทาง และตัวอย่างการใช้งานมีอยู่ในเอกสารประกอบสำหรับผู้ใช้ปลายทางของ Unity

ฉาก VrMode ในตัวอย่าง HelloCardboard แสดงการใช้งานพื้นฐานของ API ที่กล่าวถึงข้างต้น ในฉากนี้ คุณปิดโหมด VR ได้โดยแตะออก ปุ่ม X และเปิดอีกครั้งได้ เพียงแตะที่ใดก็ได้บนหน้าจอ ดูรายละเอียดเกี่ยวกับวิธีดำเนินการได้ที่ VrModeController.cs

ขั้นตอนถัดไป