1.1 VR Project Setup

1.1 - VR Project Setup - Unity Learn

1. Open a new VR project

  • デフォルトのテンプレートからのプロジェクト作成ではなくダウンロードできるテンプレートを使う
    • 上記のように名前を変更したが、元の VR Room Project のままでも良い
  • プロジェクトを Unity Hub からディスクから追加で開く
    • 同じバージョンが無かったため、現状最新の 6.3 を使う
  • 変換はできたようだが、Unity Editor が開いたところで以下のように Errors and Warnings の警告が出ており、見事に VR 系のパッケージが当てはまっている。
    • Invalid Signature なので一旦放置
  • VR 開発用には以下のパッケージが必要らしい

2. Open and explore the starter scene

  • Main Camera ,Right Hand Controller, Left Hand Controller のそれぞれに Tracked Pose Driver がアタッチされている
Main CameraRight Hand ControllerLeft Hand Controller
  • Input Action ManagerXRI Default Input System という Input System 設定を読み込んでいる。
    • ここにある設定が上記の Tracked Pose Driver にも使われている

3. Add a room and background

  • 窓からの景色がざっくり見えるように配置

4. Run the app with the Device Simulator

  • XR Device Simulator を使うとデバッグ実行ができる
  • 実機で実行する際は必ず disabled にするか削除すること

5. Test in VR through Unity

  • Open XR Plugin に関して
    • 運良く Project Validation にはひっかからなかった

6. Build and run on your device

  • Android Build Support が無い場合は、Unity Hub からインストールする
  • 必須かは分からないが、Meta Quest の場合に ADB ドライバーについても言及があった
  • Quest 3 を接続して Refresh すると出てくる
  • 無事 Quest 3 で起動できた

7. Test on other OpenXR-compatible devices

8. Recap

9. Extension Activities

実際のアナログ時計はもっと時・分がなめらかに動くと思いますが、とりあえず簡単に済ませました。

using System;  
using UnityEngine;  
  
public class Clock : MonoBehaviour  
{  
    [SerializeField] private Transform hour;  
    [SerializeField] private Transform minute;  
    [SerializeField] private Transform second;  
  
    // Update is called once per frame  
    private void Update()  
    {        
        var now = DateTime.Now;  
        second.localRotation = Quaternion.Euler(now.Second * 6f, 0f, 0f);  
        minute.localRotation = Quaternion.Euler(now.Minute * 6f, 0f, 0f);  
        hour.localRotation = Quaternion.Euler(now.Hour * 30f, 0f, 0f);  
    }}