Table of Contents

Hardware

Oculus Quest 2 pack

Install All Apps first:

Enable Developer mode for your account

Oculus Casting and Screen Sharing

Start VR in Unity

XR socket interactor: for take object into place

VR UI Canvas

XR Interaction Toolkit > XR Device Simulator, (disable it before export to device, this is for on screen testing w.o device)

VR Framework setup

Make Object Grabbale

Make Object highlight

others:

VR quick workflow

VR quick setup

initial setup

  1. new project: build settings - android
  2. player settings: input: new inputs
  3. [add] package manager: install (alt+_)
    • XR plugin management 4.2.1
    • XR interactive toolkit 2.0.2 + import Starter Asset
    • oculus XR plugin: 1.12
  4. player setting:
    • xr plugin management: check oculus for both pc and android
  5. [add] import external package:
    • Oculus Hands.unitypackage
    • VR Tunnelling Pro.unitypackage

input tweak

  1. go Assets / Samples / XR Interaction toolkit / 2.0.2/ Starter
  2. [add] select XRI default left+right controller: (top button in inspector) “add to ActionBasedController default”
  3. [set] Project setting > Preset Manager:
    • filter “Right”/“Left” for “XRI Default Right/Left Controller”

Settings

  1. Build settings: Android
    • texture compression: ASTC
  2. Project setting:
    • Quality: go option Medium:
      • anistropic texture = disable
      • anti alias = 4x
      • shadow = disable
  3. Player setting:
    • other : Dynamic Batching = true
    • other : mini API = 23
    • prebake collision mesh = true
  4. audio setting:
    • DSP buffet size = best latency
  5. Time setting:
    • fixed timestep = 0.0138889 (1/72)

MainScene

  1. Name MainScene
  2. delete default cameras
  3. First directional light
    • mode = realtime
    • shadow = no shadow
  4. Second directional light
    • mode = baked
    • shadow = soft shadows
  5. layer: Teleport / Grab / Player
    • project setting : physics : layer collision matrix > player not X grab

XR Rig

  1. [add] XR origin (action based)
    • to layer “Player” (no, this object only) « this is for VR, not XR origin without hand one.
    • tracking origin mode = “Floor”
  2. inside XR origin:
    • duplicate L/R controllers 2 times
    • 0 = RightHand Direct Controller
      • remove Ray interactor
      • remove interactor line visual
      • remove Line renderer
      • [add] “XR Director Interactor”
        • hide controller on select = true
      • [add] “Sphere collider”
        • is trigger = true
        • radius = 0.1
    • 1 = RightHand Ray Controller (L)
      • enable interaction with UI = true
      • Raycast config > Raycast mask = UI
      • interactor line isual > invalid color gradient all alpha = 0 (???)
    • 2 = RightHand Teleport Controller (L)
      • active = disabled
      • XR controller : selection action = XRI RightHand Locomotion / Teleport select
      • Ray interactor : enable interaction with UI = false
      • Ray interactor : line type = projectile curve
      • Ray interactor : velocity = 8
      • Ray interactor : Raycast mast = Teleport
      • interactor line visual : override line length = false

Blink effect

tunneling effect

Locomotion system

Rig component

Hand Presenece Prefab

Hand animation

Teleport reticle

Teleport Anchor

Teleport Area

Grabbable

Highlighting for grabable

Socket for grabbable

other tag socket

UI

BigButton

Leveler

Finalize