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

คู่มือนี้จะแสดงวิธีใช้ปลั๊กอิน Google Cardboard XR สำหรับ Unity สำหรับ Unity เพื่อสร้างประสบการณ์ Virtual Reality (VR) ของคุณเอง

คุณสามารถใช้ Cardboard SDK เพื่อเปลี่ยนโทรศัพท์มือถือให้เป็นแพลตฟอร์ม VR ได้ สมาร์ทโฟนสามารถแสดงฉาก 3 มิติด้วยการแสดงภาพสามมิติ ติดตามและตอบสนองต่อการเคลื่อนไหวของศีรษะ และโต้ตอบกับแอปด้วยการตรวจจับเมื่อผู้ใช้กดปุ่มของผู้ชม

ในการเริ่มต้นใช้งาน คุณจะใช้ HelloCardboard ซึ่งเป็นเกมเดโมที่สาธิตฟีเจอร์หลักของ Cardboard SDK ในเกม ผู้ใช้จะมองไปรอบๆ โลกเสมือนเพื่อค้นหาและสะสมวัตถุ โดยจะแสดงวิธีการต่อไปนี้

  • ตั้งค่าสภาพแวดล้อมในการพัฒนาซอฟต์แวร์
  • ดาวน์โหลดและสร้างแอปเดโม
  • สแกนคิวอาร์โค้ดของแว่น Cardboard เพื่อบันทึกพารามิเตอร์
  • ติดตามการเคลื่อนไหวศีรษะของผู้ใช้
  • แสดงภาพสามมิติโดยการตั้งค่าความผิดเพี้ยนที่ถูกต้องสำหรับตาแต่ละข้าง
  • เปิดและปิดโหมด VR

ตั้งค่าสภาพแวดล้อมในการพัฒนาซอฟต์แวร์

ข้อกำหนดของซอฟต์แวร์

นำเข้า SDK และสร้างโปรเจ็กต์ใหม่

ทำตามขั้นตอนต่อไปนี้เพื่อนำเข้า Unity SDK และสร้างโปรเจ็กต์ใหม่

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

การกำหนดค่าโหมด HelloCardboard

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

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

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

  1. เลือก Android แล้วเลือกเปลี่ยนแพลตฟอร์ม
  2. เลือก Add Open Scenes แล้วเลือก HelloCardboard

การตั้งค่าโปรแกรมเล่น

ความละเอียดและการนำเสนอ

ไปที่การตั้งค่าโปรเจ็กต์ > โปรแกรมเล่น > ความละเอียดและงานนำเสนอ

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

การตั้งค่าอื่น

ไปที่การตั้งค่าโปรเจ็กต์ > โปรแกรมเล่น > การตั้งค่าอื่นๆ

  1. เลือก OpenGLES2, OpenGLES3 หรือ Vulkan หรือทั้ง 2 อย่างรวมกันใน Graphics API
  2. เลือก Android 8.0 'Oreo' (API level 26) ขึ้นไปในระดับ API ขั้นต่ำ
  3. เลือก API level 33 หรือสูงกว่าในระดับ API เป้าหมาย
  4. เลือก IL2CPP ในแบ็กเอนด์สคริปต์
  5. เลือกสถาปัตยกรรมที่ต้องการโดยเลือก ARMv7, ARM64 หรือทั้ง 2 แบบในสถาปัตยกรรมเป้าหมาย
  6. เลือก Require ในการเข้าถึงอินเทอร์เน็ต
  7. ระบุโดเมนบริษัทของคุณในชื่อแพ็กเกจ
  8. หากเลือก Vulkan เป็น Graphics API ให้ทำดังนี้
    • ยกเลิกการเลือกช่องทำเครื่องหมายใช้การหมุนจอแสดงผลระหว่างการแสดงผลในการตั้งค่า Vulkan
    • หากเวอร์ชัน Unity คือ 2021.2 ขึ้นไป ให้เลือก ETC2 ในรูปแบบการบีบอัดพื้นผิว
  9. หากเวอร์ชัน Unity คือ 2023.1 ขึ้นไป ให้เลือก 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.6.1'
      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 ในส่วน Plug-in Providers

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

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

  1. เลือก Build หรือเลือกอุปกรณ์และเลือก Build and Run

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

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

  1. เลือก iOS แล้วเลือกเปลี่ยนแพลตฟอร์ม
  2. เลือก Add Open Scenes แล้วเลือก 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. ระบุโดเมนบริษัทของคุณในชื่อแพ็กเกจ

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

ไปที่การตั้งค่าโปรเจ็กต์ > การจัดการปลั๊กอิน XR

  1. เลือก Cardboard XR Plugin ในส่วน Plug-in Providers

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

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

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

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

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

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

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

การเปิดและปิดโหมด VR

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

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

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