# Quickstart for Google VR SDK for Unity with Android

This guide shows you how to set up Google VR development with Unity and build a
demo Daydream or Cardboard app for Android.

## Set up your development environment

Hardware requirements:

- **Daydream:** You'll need a [Daydream-ready phone](https://vr.google.com/daydream/smartphonevr/phones/)
  and a [Daydream View](https://madeby.google.com/vr/).

- **Cardboard:** You'll need an Android device running Android 4.4 'KitKat'
  (API level 19) or higher and a [Cardboard viewer](https://vr.google.com/cardboard/get-cardboard/).

Software requirements:

- Install Unity:

  - **Recommended version:** [LTS release 2018.4](https://unity3d.com/unity/qa/lts-releases) or newer
  - **Minimum version for 6DoF head tracking:** 2017.3
  - **Minimum version for smartphone:** 5.6

  Make sure that the **Android Build Support** component is selected
  during installation.
- Make sure your environment is configured for Android development.

  Refer to Unity's guide for
  [Android SDK/NDK setup](https://docs.unity3d.com/Manual/android-sdksetup.html).

## Download the Google VR SDK for Unity

- Download the latest `GoogleVRForUnity_*.unitypackage` from the
  [releases page](https://github.com/googlevr/gvr-unity-sdk/releases).

  The SDK includes the following demo scenes for Daydream
  and Cardboard:

  | Scene | Description |
  |---|---|
  | **HelloVR** | Simple VR game in which you find and select a geometric shape |
  | **KeyboardDemo** | **Daydream**: Shows keyboard input on a UI canvas |
  | **PermissionsDemo** | **Daydream**: Shows a correct user permissions request flow |
  | **VideoDemo** | Shows various ways to use stereo or 360° video through playback or remote streaming |
  | **Hello6DoFControllers** | Demonstrates use of [experimental 6DoF controllers](https://developers.google.com/vr/develop/unity/guides/6dof-controller-support) |

  <br />

## Import the Google VR Unity package

1. Open Unity and create a new **3D** project.

2. Select **Assets** \> **Import Package** \> **Custom Package**.

3. Select the `GoogleVRForUnity_*.unitypackage` file that you downloaded.

4. In the **Importing Package** dialog, click **Import**.

   Accept any [API upgrades](https://docs.unity3d.com/Manual/APIUpdater.html),
   if prompted.

## Configure settings

1. Select **File** \> **Build Settings**.

2. Select **Android** and click **Switch Platform**.

3. In the **Build Settings** window, click **Player Settings**.

   Configure the following player settings:

   | Setting | Value |
   |---|---|
   | **Player Settings** \> **XR Settings** \> **Virtual Reality Supported** | Enabled |
   | **Player Settings** \> **XR Settings** \> **Virtual Reality SDKs** | Click **+** and select **Daydream** or **Cardboard** |
   | **Player Settings** \> **Other Settings** \> **Minimum API Level** | Daydream: **Android 7.0 'Nougat' (API level 24)** or higher Cardboard: **Android 4.4 'KitKat' (API level 19)** or higher |
   | **Player Settings** \> **Other Settings** \> **Package Name** | Your app's package identifier |

## Preview the demo scene in Unity

1. In the Unity **Project** window, go to **Google VR** \>
   **Demos** \> **Scenes** . Open the **HelloVR** scene.

2. Press the **Play** button. In the **Game** view you should see a
   rendered demo scene.

   Note that although the scene here is monoscopic, the rendering on your
   phone will be stereo. Unity might display this warning message as a
   reminder:

   *Virtual Reality SDK Daydream is not supported in Editor Play Mode.*
   *Please Build and run on a supported target device.*
   *Will attempt to enable None instead.*
3. **Daydream:** (Optional) You can use a physical Daydream controller instead
   of simulated controls while in play mode in the editor. To do this, use
   [Instant Preview](https://developers.google.com/vr/tools/instant-preview).

4. Interact with the scene using simulation controls:

   | Type | Simulated action | What to do |
   |---|---|---|
   | Head movement | Turn your head | Hold **Alt** + move mouse |
   |   | Tilt your view | Hold **Control** + move mouse |
   | **Cardboard** input | Button press | Click anywhere in the **Game** view |
   | **Daydream** input | Change controller orientation | Hold **Shift** + move mouse |
   |   | Click touchpad button | Hold **Shift** + click left |
   |   | Click app button | Hold **Shift** + click right |
   |   | Click home button to recenter | Hold **Shift** + click middle |
   |   | Touch the touchpad. To see the controller, tilt your view down | Hold **Control** |
   |   | Change the touch position on the touchpad. To see the controller, tilt your view down | Hold **Control** + move mouse |

## Prepare your device

To prepare your supported device, [enable developer options and USB debugging](https://developer.android.com/studio/debug/dev-options.html#enable).

## Build and run the demo scene on your device

1. Connect your phone to your computer using a USB cable.

2. Select **File** \> **Build and Run**.

   Unity builds your project into an Android APK, installs it on the device,
   and launches it.
3. Put the phone in your viewer and try out the demo.

## Next steps

For more details on building **Daydream** apps in Unity, see:

- [Daydream (3DoF) controller support in Unity](https://developers.google.com/vr/unity/controller-basics)
- [Resonance Audio](https://resonance-audio.github.io/resonance-audio/)
- [Daydream Elements](https://developers.google.com/vr/elements/overview)
- [Streaming Video Support](https://developers.google.com/vr/video/video-overview)