0% found this document useful (0 votes)
418 views

Developing AR and VR Experiences With Unity

This document provides an overview of developing augmented reality (AR) and virtual reality (VR) experiences using the Unity game engine. It begins with introductions to AR and VR, including definitions and key technologies. Examples of mobile AR apps from 2005 to the present are described. Tools for building AR and VR content with Unity are explained, including interfaces, adding 3D content, and scripting. The document concludes with a basic tutorial on setting up a Unity project and creating a simple 3D scene with objects, cameras, lights, materials, and a script.

Uploaded by

Yujie Wang
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
418 views

Developing AR and VR Experiences With Unity

This document provides an overview of developing augmented reality (AR) and virtual reality (VR) experiences using the Unity game engine. It begins with introductions to AR and VR, including definitions and key technologies. Examples of mobile AR apps from 2005 to the present are described. Tools for building AR and VR content with Unity are explained, including interfaces, adding 3D content, and scripting. The document concludes with a basic tutorial on setting up a Unity project and creating a simple 3D scene with objects, cameras, lights, materials, and a script.

Uploaded by

Yujie Wang
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 184

DEVELOPING AR AND VR

EXPERIENCES WITH UNITY

Mark Billinghurst
University of South Australia

November 7th 2017


INTRODUCTION
Virtual Reality

Computer generated multi-sensory simulation of an


artificial environment that is interactive and immersive.
What is Virtual Reality?
Virtual reality is..
a computer technology that replicates an
environment, real or imagined, and simulates a
user's physical presence and environment to
allow for user interaction. (Wikipedia)

• Defining Characteristics
• Environment simulation
• Presence
• Interaction
First VR Experience

• “This is so real..”
• https://www.youtube.com/watch?v=pAC5SeNH8jw
Types of VR

7
Key Technologies for VR Systems
• Visual Display
• Stimulate visual sense
• Audio/Tactile Display
• Stimulate hearing/touch
• Tracking
• Changing viewpoint
• User input
• Input Devices
• Supporting user interaction
Augmented Reality

1977 – Star Wars


Augmented Reality Definition
• Defining Characteristics [Azuma 97]
• Combines Real and Virtual Images
• Both can be seen at the same time
• Interactive in real-time
• The virtual content can be interacted with
• Registered in 3D
• Virtual objects appear fixed in space

Azuma, R. T. (1997). A survey of augmented reality. Presence, 6(4), 355-385.


2008 - CNN

https://www.youtube.com/watch?v=v7fQ_EsMJMs
AR vs VR
Milgram’s Reality-Virtuality continuum
"...anywhere between the extrema of the virtuality continuum."

Mixed Reality

Real Augmented Augmented Virtual


Environment Reality (AR) Virtuality (AV) Environment

Reality - Virtuality (RV) Continuum


P. Milgram and A. F. Kishino, Taxonomy of Mixed Reality Visual Displays
IEICE Transactions on Information and Systems, E77-D(12), pp. 1321-1329, 1994.
MOBILE AR AND VR
Long History of AR and VR

https://immersivelifeblog.files.wordpress.com/2015/04/vr_history.jpg
2005 - Mobile Phone AR

• Mobile Phones
• camera
• processor
• display

• AR on Mobile Phones
• Simple graphics
• Optimized computer vision
• Collaborative Interaction
Wellington Zoo Demo (2007)

https://www.youtube.com/watch?v=edTjuXcce_c
Mobile AR 2009 - Outdoor Overlay
• Mobile phone based
• Tag real world locations
• GPS + Compass input
• Overlay graphics on live video

• Applications
• Travel guide, Advertising, etc
• Wikitude, Layar, etc..
• iOS/Android, Public API released
Layar Demo (2009)

• https://www.youtube.com/watch?v=b64_16K2e08
Vuforia Featured Apps (2015)

• Mobile AR using Vuforia image tracking


• https://www.youtube.com/watch?v=rohLgtLQrK4
Mobile Camera AR Apps (2015 - )

• SnapChat - Lenses, World Lenses


• Cinco de Mayo lens > 225 million views
• Facebook - Camera Effects
• Google – Word Lens/Translate
ARKit/ARcore (2017)

• Visual Inertial Odometry (VIO) systems


• Mobile phone pose tracked by
• Camera (Visual), Accelerometer & Gyroscope (Intertial)
• Features
• Plane detection, lighting detection, hardware optimisation
• Links
• https://developer.apple.com/arkit/ https://developers.google.com/ar/
ARKit Demos

https://www.youtube.com/watch?v=6xDyVBsBtX8
Computer Based vs. Mobile VR
2016 - Rise of Consumer HMDs

Oculus Rift
HTC/Valve Vive

Sony Morpheus
HTC Vive

• Room scale tracking


• Gesture input devices
Example HTC Vive App – Tilt Brush

https://www.youtube.com/watch?v=ijukZmYFX-0
Mobile VR: Google Cardboard

+ =

• Released 2014 (Google 20% project)


• >80 million shipped/given away
• Easy to use developer tools
Google Cardboard (v2)
Presses the
screen

Figure: google cardboard v2 supports larger phone.

more reading at http://www.gizmag.com/google-cardboard-2-review-initial/37777/


Many Mobile VR Viewers Available
Types of VR Experiences
• Immersive Spaces
• 360 Panorama’s/Movies
• High visual quality
• Limited interactivity
• Changing viewpoint orientation

• Immersive Experiences
• 3D graphics
• Lower visual quality
• High interactivity
• Movement in space
• Interact with objects
Immersive Panorama

• High quality 360 image or video surrounding user


• User can turn head to see different views
• Fixed position
Example Applications
• Within – Storytelling for VR
• https://with.in/
• High quality 360 VR content
• New York Times VR Experience
• NYTVR application
• Documentary experiences
• Vimeo360
• https://join.vimeo.com/360/
• Immersive 360 movies
Applications: Virtual Tours
•Visualise architectural diagrams

•Tools such as Autodesk, Revit supporting VR

•Metricon, 3D tours
Applications: Sports and Entertainment
•www.Nexvr.com

• Live streaming events

• NBA Basketball VR

• (1 game per week)

• US Open Tennis VR

• Live Nation concerts


Capturing Panoramas
• Stitching photos together
• Image Composite Editor (Microsoft)
• AutoPano (Kolor)
• Using 360 camera
• Ricoh Theta-S
• Fly360
Capturing 360 images

Kodak 360 Fly 360 Gear 360 Theta S Nikon

LG 360 Pointgrey Ladybug Panono 360 Bublcam


Example: Cardboard Camera

• Capture 360 panoramas


• Stitch together images on phone
• View in VR on Cardboard
Demo: Cardboard Camera

https://www.youtube.com/watch?v=d5lUXZhWaZY
Google Cardboard App
• 7 default experiences
• Earth: Fly on Google Earth
• Tour Guide: Visit sites with guides
• YouTube: Watch popular videos
• Exhibit: Examine cultural artifacts
• Photo Sphere: Immersive photos
• Street View: Drive along a street
• Windy Day: Interactive short story
100’s of Google Play Cardboard apps
BUILDING AR AND VR
What You Need
• Cardboard Viewer/VR Viewer
• https://www.google.com/get/cardboard/
• Smart phone
• Android/iOS
• Authoring Tools/SDK
• Google VR SDK
• Unity/Unreal game engine
• Non programming tools
• Content
• 3D models, video, images, sounds
Software Tools
• Low level SDKs
• Need programming ability
• Java, C#, C++, etc
• Example: Google VR SDK (iOS, Android)
• https://developers.google.com/vr/

• Game Engines
• Powerful, need scripting ability
• Unity - https://unity3d.com/
• Unreal - https://www.unrealengine.com/vr
• Combine with VR plugins (HMDs, input devices)
• Google VR Unity plugin
Unity Interface
Tools for Non-Programmers
• Focus on Design, ease of use
• Visual Programming, content arrangement
• Examples
• Insta-VR – 360 panoramas
• http://www.instavr.co/
• Vizor – VR on the Web
• http://vizor.io/
• A-frame – HTML based
• https://aframe.io/
• ENTiTi – Both AR and VR authoring
• http://www.wakingapp.com/
• Eon Creator – Drag and drop tool for AR/VR
• http://www.eonreality.com/eon-creator/
INTRO TO UNITY
Unity Show Reel

• https://www.youtube.com/watch?v=8lWpnvNxs8k
Unity 3D Game Editor
SETUP
Download and Install
• Go to unity3d.com/download
• Use Download Assistant – pick components you want
Getting Started
• First time running Unity you’ll be asked to create a project
• Specify project name and location
Unity Interface
• Toolbar, Scene, Hierarchy, Project, Inspector
Customizable Interface
Building Scenes
• Use GameObjects:
• Containers that hold different components
• Eg 3D model, texture, animation

• Use Inspector
• View and edit object properties and other settings
• Use Scene View
• Position objects, camera, lights, other GameObjects etc
• Scripting
• Adding interaction, user input, events, etc
GameObjects
• Every object in Scene is a GameObject
• GameObjects contain Components
• Eg Transform Component, Camera Component
Adding 3D Content

• Create 3D asset using modeling package, or download


• Fbx, Obj file format for 3D models
• Add file to Assets folder in Project
• When project opened 3D model added to Project View
• Drag mesh from Project View into Hierarchy or Scene View
• Creates a game object
Positioning/Scaling Objects

• Click on object and choose transform


Unity Asset Store

• Download thousands models, scripts, animations, etc


• https://www.assetstore.unity3d.com/
UNITY BASICS
Making a Simple Scene
1. Create New Project
2. Create Game Object
3. Moving main camera position
4. Adding lights
5. Adding more objects
6. Adding physics
7. Changing object materials
8. Adding script behaviour
Create Project

• Create new folder and project


New Empty Project
Create GameObject

• Load a Sphere into the scene


• GameObject -> 3D Object -> Sphere
Moving main camera

• Select Main Camera


• Select translate icon
• Move camera
Add Light

• GameObject -> Light -> Directional Light


• Use inspector to modify light properties (colour, intensity)
Add Physics

• Select Sphere
• Add Rigidbody component
• Add Component -> Physics -> RigidBody
• or Component -> Physics -> RigidBody

• Modify inspector properties (mass, drag, etc)


Add More Objects

• Add several cubes


• GameObject -> 3D Object – Cube
• Move cube
• Add Rigid Body component (uncheck gravity)
Add Material

• Assets -> Create -> Material


• Click Albedo colour box in inspector
• Select colour
• Drag asset onto object to apply
Add Script

• Assets -> Create -> C# script


• Edit script using Mono
• Drag script onto Game Object
Example C# Script
GameObject Rotation

using UnityEngine;
using System.Collections;

public class spin : MonoBehaviour {

// Use this for initialization


void Start () {

// Update is called once per frame


void Update () {
this.gameObject.transform.Rotate(Vector3.up*10);
}
}
Scripting C# Unity 3D
• void Awake():
• Is called when the first scene is loaded and the game object is active
• void Start():
• Called on first frame update
• void FixedUpdate():
• Called before physics calculations are made
• void Update():
• Called every frame before rendering
• void LateUpdate():
• Once per frame after update finished
Final Spinning Cube Scene
Resources
• Unity Main site
• http://www.unity3d.com/
• Holistic Development with Unity
• http://holistic3d.com
• Official Unity Tutorials
• http://unity3d.com/learn/tutorials
• Unity Coder Blog
• http://unitycoder.com
BUILDING A 360 VIEW
Key Steps
1. Creating new project
2. Loading Google VR package
3. Adding VR view emulation
4. Getting a panorama image
5. Creating a Skybox material
6. Adding a Skybox
7. Testing application
8. Deploying to mobile phone
1. New Project

• Double click Unity icon


• or within Unity File -> New Project
Empty Project
2. Load Google VR Package

• Assuming you have already downloaded


GoogleVRForUnity_1.100.1.unitypackage
• Adding Google VR package
• Assets -> Import package -> custom package
• Navigate to Google VR package, select/open
• Select import button on dialog
Google VR Package

• Mixture of scripts, prefabs, plugins etc for Google VR


• Useful collection of Demos and resources
3. Adding VR View Emulation

• Select Prefabs and drag GvrEditorEmlator to Hierarchy


• Adds VR camera controls using mouse/keyboard
• Change roll, pitch and yaw using mouse + Alt/Ctrl/Command keys
View So Far
4. Getting a Panorama Image

• Find/create suitable panorama image


• Ideally 2K or higher resolution image
• Google “Panorama Image Cubemap”
Sample Panorama Image

• http://paulbourke.net/miscellaneous/cubemaps/sph2.jpg
5. Creating a Skybox material

• Import panorama image as a asset


• Asset -> Import New Asset ..
• In inspector – change texture type, shape
• Texture type -> Default
• Texture shape -> Cube
• Mapping ->Latitude-Longitude
Create Skybox Material

• Assets -> Create -> Material


• Name material
• Set Shader to Skybox -> Cubemap
• Drag pano texture to cubemap
6. Create Skybox

• Make a new Skybox


• Window -> Lighting -> Settings
• In window Lighting settings
• Drag Skybox material to Skybox material form
View So Far
7. Testing Application

• Select Maximize on Play


• Hit play arrow and use mouse + Alt/Ctrl/Command keys
8. Deploying to Mobile Phone
• Go to Build Settings
• File -> Build Settings
• Change platform to Android
• Add open scenes
• Check Development Build
• In Player Settings
• XR Settings -> VR supported
• Other Settings
• Change Package Name
• E.g. com.BDVApano.PanoTest
3D VR SCENE
Key Steps
1. Create New Scene + add GvrEditorEmulator
2. Create body object and add camera to it
3. Add 3D objects to scene
4. Test 3D scene
1. Create Scene

• File -> New Scene


• Drag GvrEditorEmulator into hierarchy
• Prefabs -> GvrEditorEmulator
• Save scene (File -> Save Scene)
2. Create Body

• Needed for correct camera motion


• Create empty object and name it Body
• GameObject -> Create Empty
• Change y value of Body to 1.0 (or similar height)
• Drag Main Camera under Body
3. Create Scene

• Add a ground plane


• Game Object -> 3D Object -> Plane
• Add material to ground plane
• Assets -> Create Material
• Add cube, sphere, cylinder + materials, position around plane
• Move Main Camera to (0,0,0) point
4. Test Scene

• Select Maximize on Play


• Hit play arrow and use mouse + Alt/Ctrl/Command keys
MORE COMPLEX SCENE
Key Steps
1. Creating a new project
2. Load Cardboard SDK
3. Replace camera with CardboardMain
4. Loading in 3D asset packages
5. Loading a SkyDome
6. Adding a plane floor
New Project

• Camera replaced with CameraMain


Download Model Package

• Magic Lamp from 3dFoin


• Search on Asset store
Load Asset + Add to Scene

• Assets -> Import Package -> Custom Package


• Look for MagicLamp.unitypackage (If not installed already)
• Drag MagicLamp_LOD0 to Hierarchy
• Position and rotate
Import SkySphere package

• SkySphere Volume1 on Asset store


Add SkySphere to Scene

• Drag Skyball_WithoutCap into Hierarchy


• SkySphere_V1 -> Meshes
• Rotate and Scale as needed
Add Ground Plane

• GameObject -> 3D Object -> Plane


• Set Scale X to 2.0, Z to 2.0
Testing View

• Use alt/option key plus mouse to rotate view


Adding More Assets

• Load from Asset store – look for free assets


GAZE INTERACTION
Gaze Interaction
• Using Gaze interaction is natural for VR
• Without an eye-tracker it’s really head point
• Goal is to have objects that respond to Gaze input
• E.g. look at objects to have them change colour
• Gaze + button input is particularly powerful
• Gaze to highlight, then button click to select
Key Steps
• Using previous scene:
1. Add Event System
2. Add Gaze Reticle to Main Camera
3. Add Physics Raycaster to Camera
4. Add Event Trigger to Object
5. Create Gaze Input Script
6. Connect Script Functions
7. Test Scene
1. Add Event System

• Need an Event System object to monitor events


• E.g. Gaze going on and off an object
• Google VR package has built in Event System
• GoogleVR à Prefabs à EventSystem
• Drag GvrEventSystem prefab into hierarchy
2. Add Gaze Reticle to Camera

• Gaze reticle shows the center of the camera view


• Gaze reticle prefabs
• GoogleVR à Prefabs à Cardboard
• Drag GvrReticlePointer under Main Camera
• In inspector click on ReticlePointer to set colour (red in this case)
3. Add Physics Raycaster to Camera

• Used to send ray from camera to collide


with objects in the scene
• Select Main Camera
• Add Gvr Pointer Raycaster Component
• Add Component à GvrPointerPhysicsRaycaster
4. Add Event Trigger to Object

• Used to cause event to trigger when gazing at object


• Select Cube
• Add Event Trigger Component
• Add Component à Event Trigger
• Now when playing reticle changes shape over cube
Add Event Trigger Type

• We want something to happen when gaze at object


• Change object colour when person looking at it
• Add new event type to event trigger component
• Hit Add New Event Type button
• Add Pointer Enter and Point Exit events
• Need to add function scripts to events
5. Create Gaze Input Script

• Create a new Script


• Cube à Add Component à New Script
• Name script GazeInput
• Edit Script – adding functions for changing object colour
GazeInput Script
6. Connect Script Functions

• In event trigger drag Cube into object form


• In Pointer Enter add HighlightColour Function
• Gaze Input à HighlightColour()
• In Pointer Exit add ResetColour Function
• Gaze Input à ResetColour()
7. Test Scene

• When gaze falls on Cube, Cube highlights white


• Resets to original colour when gaze moves off
MOVING IN VR
NurFACEGAMES Tutorial

• https://www.youtube.com/watch?v=kBTn2pGwZUk
Key Steps
1. Create simple scene
2. Add Character Controller to scene
3. Creating walk script
4. Connect Character Controller to script
5. Testing scene
1. Create Simple Scene

• Create new scene


• Add GvrEditorEmulator to hierarchy
• Prefabs à GvrEditorEmulator
• Add plane and objects
2. Add Character Controller to Scene

• Add empty Body object


• Add camera to Body
• Add Character Controller to Body
• Add Component à Character Controller
• Move camera to top of Character Controller
3. Create Walking Script

• Want to toggle walking on when user looks down


• When looking down more than 30 degrees
• Move forward in the direction the user is looking
• Move the Body object
• Add script to Main Camera
• Add component à New Script
VRLookWalk script
4. Connect Character Controller to script

• Drag Body object into CC empty form space


• Uses the Body Character Controller in script
5. Test Scene

• Moving when head is tilted down


• Move direction camera is facing
• Adjust speed as needed
AUGMENTED REALITY
Using Vuforia to Create AR Experiences
What you will learn
• Introduction to Vuforia
• Platform and features
• How to install/set-up Vuforia
• Vuforia Basics
• Marker Tracking, Object tracking
• Deploying to Mobile Device
• Android, iOS
OVERVIEW
Vuforia Overview
• Platform for Mobile Computer Vision
• https://www.qualcomm.com/products/vuforia
• Released by Qualcomm in 2010, acquired by PTC 2015
• Used by over 200K developers, >20K applications

• Main Features:
• Recognition
• Image, text, object recognition
• Tracking
• Image, marker, scene, object
Vuforia Provides
• Android
Device SDK •

iOS
Unity Extension

• Target Management System


Tools & Services •

App Development Guide
Vuforia Web Services

• Dedicated technical support


Support Forum engineers
• Thousands of posts
Vuforia Features
Tracking Targets
Image

Object

Environment
Developer Tools
Target Manager
Cloud Services
Platform Anatomy
User Experiences Enabled
USING VUFORIA
Key Steps
1. Enable Vuforia in project
2. Load AR Camera
3. Configure camera
4. Load Tracking Image
5. Add 3D model
6. Test AR Scene
1. Enable Vuforia in project

• If checked the Vuforia AR box on Unity install:


• just check Vuforia Augmented Reality in player settings
• Build Settings à Player Settings à XR Settings
• If didn’t install, need to download and install package
• See https://developer.vuforia.com/downloads/sdk
• Download vuforia-unity-6-2-10.unitypackage
2. Add AR Camera to Scene

• Add Vuforia camera object


• Game Object à Vuforia à AR Camera
• Delete Main Camera object
3. Configure Camera

• Need to add Vuforia License key


• Open AR Camera inspection
• Open Vuforia Configuration
Create Vuforia Developer Account

• Need to create a Vuforia Developer account


• https://developer.vuforia.com/
• Register for account
License Manager Portal

• Login to Vuforia account


• Got to license manager
• Develop à License Manager
Request Development Key

• Select Get Development Key


• Enter application name
Get License Key

• Return to License Manager


• Click on app name + copy license key
Add License Key to Project

• Paste key into Vuforia Configuration


• AR Camera à Open Vuforia Configuration
4. Load Tracking Image

• In Vuforia Configuration check image datasets


• Load VuforiaMars_Images Database, Activate
• Add tracking image to scene hierarchy
• Game Object à Vuforia à Image
• In imageTarget inspector, select image target, scale as needed
Scene So Far
5. Add 3D Objects

• Add 3D objects and assets


• Add as child of Image target
6. Test Scene

• Print AR tracking image or show on device


• Hit play button and test with webcamera
DESIGN GUIDELINES
Google Design Guidelines
• Google’s Guidelines for good VR experiences:
• Physiological Considerations
• Interactive Patterns
• Setup
• Controls
• Feedback
• Display Reticle

• From http://www.google.com/design/spec-vr/designing-
for-google-cardboard/a-new-dimension.html
Physiological Considerations
• Factors to Consider
• Head tracking
• User control of movement
• Use constant velocity
• Grounding with fixed objects
• Brightness changes
Interactive Patterns - Setup
• Setup factors to consider:
• Entering and exiting
• Headset adaptation
• Full Screen mode
• API calls
• Indicating VR apps
Interactive Patterns - Controls

• Use fuze buttons for selection in VR


Interactive Patterns - Feedback
• Use audio and haptic feedback
• Reduce visual overload
• Audio alerts
• 3D spatial sound
• Phone vibrations
Interactive Patterns - Display Reticle

• Easier for users to target objects with a display reticle


• Can display reticle only when near target object
• Highlight objects (e.g. with light source) that user can target
Cardboard Design Lab Application

• Use Cardboard Design Lab app to explore design ideas


RESEARCH DIRECTIONS
Many Areas for AR/VR Research
• Display
• Wide field of view, new display technologies
• Tracking
• Precise tracking, wide area
• Interaction
• Natural gesture interaction, human factors
• Authoring Tools
• Content capture, authoring

• Applications
• Collaboration, large scale
Bare Hands

• Using computer vision to track bare hand input


• Creates compelling sense of Presence, natural interaction
• Challenges need to be solved
• Not having sense of touch
• Line of sight required to sensor
• Fatigue from holding hands in front of sensor
Example: Leap Motion

• https://www.youtube.com/watch?v=QD4qQBL0X80
Eye Tracking

• Technology
• Shine IR light into eye and look for reflections
• Advantages
• Provides natural hands-free input
• Gaze provides cues as to user attention
• Can be combined with other input technologies
Example: FOVE VR Headset

• Eye tracker integrated into VR HMD


• Gaze driven user interface, foveated rendering
• https://www.youtube.com/watch?v=8dwdzPaqsDY
Pedestrian Devices
• Pedestrian input in VR
• Walking/running in VR
• Virtuix Omni
• Special shoes
• http://www.virtuix.com
• Cyberith Virtualizer
• Socks + slippery surface
• http://cyberith.com
Cyberith Virtualizer Demo

• https://www.youtube.com/watch?v=R8lmf3OFrms
Social VR

• Facebook Social Virtual Reality, AltspaceVR


• Bringing Avatars into VR space
• Natural social interaction
Demo: Facebook Social VR

https://www.youtube.com/watch?v=yxHwWHHg4Vs
CONCLUSIONS
Conclusion
• VR and AR have a long history
• Early prototypes from 1960’s onwards
• Having second phase of commercial success
• Projected to grow to over $120B market by 2020
• Mostly mobile AR/VR in near term
• It is easier than ever before to develop AR/VR apps
• Multiple easy to use tools for non-programmers
• Powerful developer tools for programmers
• There are many opportunities for research
• Collaboration, interaction, navigation, etc
RESOURCES
Google Poly for 3D models

• https://poly.google.com/
• Repository of user contributed low polygon objects
• Free to download for AR/VR applications
Resources
• Excellent book
• 3D User Interfaces: Theory and Practice
• Doug Bowman, Ernst Kruijff, Joseph, LaViola, Ivan Poupyrev

• Great Website
• http://www.uxofvr.com/

• 3D UI research at Virginia Tech.


• research.cs.vt.edu/3di/
Other Books
• Augmented Reality for Developers: Build
practical augmented reality applications
with Unity, ARCore, ARKit, and Vuforia
• Jonathan Linowes, Krystian Babilinski

• Unity Virtual Reality Projects


• Jonathan Linowes

• Holistic Game Development with Unity: An


All-in-One Guide to Implementing Game
Mechanics, Art, Design and Programming
• Penny de Byl
UX of VR Website - www.uxofvr.com

• Many examples of great interaction techniques


• Videos, books, articles, slides, code, etc..
Useful VR Resources
• Unity VR Tutorials
• https://unity3d.com/learn/tutorials/s/virtual-reality
• Google Cardboard main page
• https://vr.google.com/cardboard/
• Developer Website
• https://vr.google.com/cardboard/developers/
• Building a VR app for Cardboard (Old SDK)
• http://www.sitepoint.com/building-a-google-cardboard-vr-app-in-unity/
• Moving in VR space (Old SDK)
• http://www.instructables.com/id/Prototyping-Interactive-Environments-
in-Virtual-Re/
Useful AR Resources
• Vuforia Main Page
• https://www.vuforia.com/
• Vuforia Developer Page
• https://developer.vuforia.com
• Vuforia Getting Started
• https://library.vuforia.com/articles/Training/getting-started-with-
vuforia-in-unity-2017-2-beta.html
• ARreverie Tutorial (Old SDK)
• http://www.arreverie.com/blogs/tutorial-1-get-started-developing-ar-
apps-unity-vuforia-imagetarget/
• Instructable Tutorial (Old SDK)
• http://www.instructables.com/id/Augmented-Reality-Tutorial-for-
Beginners-With-Vufo/
www.empathiccomputing.org

[email protected]

@marknb00

You might also like