Unrealvr Course

Build Stunning Video Games in Virtual Reality. Tutorials Cover Design for Oculus Rift & Steam VR w/C++11.

Last updated 2022-01-10 | 4.4

- Understand and explain the unique challenges presented by VR hardware such as motion sickness.
- Recreate the most common mechanisms of VR games such as teleportation
- spatial UI and object interaction.
- Compare solutions to VR challenges and assess which perform best in a given context.

What you'll learn

Understand and explain the unique challenges presented by VR hardware such as motion sickness.
Recreate the most common mechanisms of VR games such as teleportation
spatial UI and object interaction.
Compare solutions to VR challenges and assess which perform best in a given context.
Choose the most appropriate mechanisms for their own games and projects.

* Requirements

* An Oculus Rift
* Steam VR compatible headset or Oculus Quest 2 with a link cable.
* A PC or Mac meeting the minimum specifications of the headset.
* Comfortable with using UE4 editor for basic scene editing.
* Able to use the UE4 Blueprint editor to make basic behaviours.
* Able to use C++ to create actors with basic behaviours.

Description

Learn to build beautiful Virtual Reality experiences. This course, created in collaboration with Epic Games, teaches you everything you need to know to build your very own VR apps and games in the world class Unreal Engine. 

Unreal is a massively powerful game engine that puts performance and graphics first. It includes industry-grade VR tools that power some of the best high-end experiences on the market such as Robo Recall. That's why Unreal is the perfect tool to create your own VR experiences.

Virtual Reality is being used to develop apps and experiences for a broad range of industries beyond games. You can do Architectural Visualisation by walking around a building before it is built. You can sketch and sculpt car designs directly in 3D without a modeller. And of, course, you can play games in a completely different way.

But Unreal being as powerful as it is and VR, so new, it can be hard to know where to start. This course makes understanding Unreal VR super easy. Not only do we show you how to use the engine's VR features, but we teach you the fundamental concepts of VR development. By teaching you the fundamentals, we will put you ahead in the rapidly developing VR space.

Looking for other Unreal content such as multiplayer, or a beginner course? Check out our other Unreal Engine tutorials, just follow the green leaf logo.

This course is aimed at beginner to intermediate Unreal users with some knowledge of C++. Not too confident? Don't worry, the course will take you through everything step by step and give you plenty of practice to build up that confidence with coding.

Note: access to this course comes with an optional, free community site where you can share games and 3D models, as well as connect with other students.

Become a pioneer of VR and create the future!

Who this course is for:

  • Beginner to intermediate UE4 developers looking for a fun way to enhance their skills.
  • Advanced UE4 Developers wanting to understand the unique challenges of VR.
  • Oculus Rift or HTC Vive owners wanting to create their own experiences.

Course content

3 sections • 98 lectures

Course Promo Preview 01:45

  • Why you should take the course.
  • We overview the journey.
  • What are the prerequisites?

(Unique Video Reference: 0_AE_VR2)

Welcome And Course Orientation Preview 12:01

  • How is the course structured?
  • How should I take the course?

(Unique Video Reference: 1_AE_VR2)

Take The Self Assessement Quiz Preview 00:23

Getting Into VR Preview 08:46

  • What about mobile VR?
  • Supported hardware: Oculus Rift and HTC Vive.
  • Setting up our base project.
  • How head tracking works in Unreal.

(Unique Video Reference: 2_AE_VR2)

Movement Section Overview Preview 05:11

  • Overview of the syllabus for this section.
  • A sneak peak at the project we will make.
  • What you will get from this section.

(Unique Video Reference: 3_AE_VR2)

Basic Controller Movement Preview 17:34

  • Why we will use a character.
  • Finding the look direction.
  • Setup the characters movement.
  • The draw backs of controller movement.

(Unique Video Reference: 4_AE_VR2)

Importing An ArchViz Environment Preview 15:59

  • Importing a beautiful environment.
  • Why we shouldn't version these files.
  • Setup the GameMode.
  • Why do collisions behave strangely?

(Unique Video Reference: 5_AE_VR2)

Mid-section Quiz

Playspace Movement and Colliders Preview 15:54

  • How can we avoid the collision issue?
  • Adding a VR root component.
  • Aligning the camera to the capsule.

(Unique Video Reference: 6_AE_VR2)

What Is VR Sickness? Preview 15:34

  • Why do we feel VR sickness?
  • The sensory systems involved.
  • How do we fool our senses?
  • What are the limits of existing techniques.

(Unique Video Reference: 7_AE_VR2)

Line Tracing A Teleport Destination Preview 19:38

  • How does teleporting work?
  • Creating a destination marker.
  • Revision of Line Tracing in C++.
  • Positioning the destination with gaze.

(Unique Video Reference: 8_AE_VR2)

Importing And Using Materials Preview 13:33

  • Fixing the cylinder bug.
  • Importing a teleport material.
  • Showing/hiding the destination.

(Unique Video Reference: 9_AE_VR2)

Fades, Timers and Teleporting Preview 19:20

  • Setting up a teleport action.
  • Teleporting to the right location.
  • Fading the camera.
  • Setting a timer to fade up.

(Unique Video Reference: 10_AE_VR2)

Mid-section Quiz

Projecting Onto The NavMesh Preview 19:16

  • In this video (objectives)…

    1. How can we constrain the teleport destination?

    2. Setting up a NavMesh.

    3. Projecting to the NavMesh.

    4. A brief refactor.

PostProcessing Materials Preview 20:15

  • What is a material?
  • Creating a post processing material.
  • Overview of the nodes we need.
  • Creating a tunnel vision effect.

(Unique Video Reference: 12_AE_VR2)

Dynamic Material Instances Preview 13:31

  • What are material parameters?
  • Setup a post processing component.
  • Dynamic vs static material instances.
  • Creating a material instance.

(Unique Video Reference: 13_AE_VR2)

Adjusting Radius With A Curve Preview 16:14

  • What is a curve?
  • Accessing a curve from C++.
  • Setting the radius from speed.

(Unique Video Reference: 14_AE_VR2)

Creating Tunnel Vision Preview 20:18

  • Where is the centre of movement?
  • Updating the blinker centre.
  • Projecting to the screen.
  • Getting the screen size.
  • Calculating the centre.

(Unique Video Reference: 15_AE_VR2)

Mid-section Quiz

Hand Controller Components Preview 16:16

  • Setup hand controller components.
  • Where are the hand controller meshes?
  • Teleporting with hand controllers.

(Unique Video Reference: 16_AE_VR2)

Parabolic Teleport Pointer Preview 14:57

  • Why use a parabolic path?
  • How do we trace a parabolic path?
  • Predicting a projectile in Unreal.

(Unique Video Reference: 17_AE_VR2)

Using A USplineComponent Preview 21:09

  • Adding to a spline component.
  • How the component works.
  • Previewing the spline in debug mode.
  • Setting the spline control points in C++.

(Unique Video Reference: 18_AE_VR2)

Dynamically Constructing UObjects Preview 20:51

  • Creating a new object.
  • Dynamically attaching components.
  • Why is RegisterComponent() important?
  • Setup meshes and materials.
  • Storing an object pool.

(Unique Video Reference: 19_AE_VR2)

Deforming Meshes With Splines Preview 19:30

  • What is a USplineMeshComponent?
  • Replacing the UStaticMeshComponent
  • Getting the spline tangents.
  • Tracing the spline.
  • Hiding extra meshes.

(Unique Video Reference: 20_AE_VR2)

Mid-section Quiz

Notes for 4.22 Preview 00:16

Extracting A Hand Controller Actor Preview 19:16

  • Why should hand controllers be actors?
  • Spawn actors on BeginPlay.
  • Move UMotionControllerComponent into Actors.
  • Fix other build errors.
  • Create a Blueprint child actor.

(Unique Video Reference: 21_AE_VR2)

Querying Overlapping Actors Preview 20:09

  • Creating hand hold actors.
  • Handling overlap events.
  • Querying overlapping actors.
  • Printing on the rising edge.

(Unique Video Reference: 22_AE_VR2)

Haptic Feedback Effects Preview 12:11

  • Haptic Feedback Effect curves.
  • Playing the effect on hand controllers.

(Unique Video Reference: 23_AE_VR2)

Climbing Motion Preview 15:48

  • Binding input to the controllers.
  • Setting starting climb state.
  • Updating the parent location.

(Unique Video Reference: 24_AE_VR2)

Climbing Motion Part 2 Preview 16:23

  • Creating a climbing wall.
  • Setting movement modes.
  • Pairing the controllers.
  • Stealing control.

(Unique Video Reference: 25_AE_VR2)

End Of Section Quiz

End Of Section Review Preview 02:22

  • We review what we have learnt.
  • How to practice your new knowledge.

(Unique Video Reference: 26_AE_VR2)

User Interface Section Introduction Preview 04:53

In this video (objectives)…

  1. What you will get from this section.
  2. A sneak peak at the section project.
  3. Setting up the project.

After watching (learning outcomes)…

Know what we are aiming for this section.

(Unique Video Reference: 1_LP_VR2)

Creating A VR Pawn Setup Preview 17:35

In this video (objectives)…

  1. Overview of the desired setup.
  2. Creating the C++.
  3. Hooking up the Blueprint.

After watching (learning outcomes)…

Have an alternative way of setting up VR Pawns.

(Unique Video Reference: 2_LP_VR2)

Binding Actions To Motion Controllers Preview 15:02

In this video (objectives)…

  1. Overview of the painting architecture.
  2. Creating a Stroke actor.
  3. Setup the input handling.
  4. Spawning a stroke.

After watching (learning outcomes)…

Forward hand controller actions to their actors.

(Unique Video Reference: 3_LP_VR2)

3D Painting With Spline Meshes Preview 17:02

In this video (objectives)…

  1. Writing and using the interface.
  2. Outlining the algorithm.
  3. Creating a spline mesh.
  4. Updating the end-points.

After watching (learning outcomes)…

Use spline meshes for 3D drawing.

(Unique Video Reference: 4_LP_VR2)

Frame Rate In VR Preview 11:16

In this video (objectives)…

  1. Why frame rate matters in VR.
  2. Viewing the frame rate.
  3. What changes the frame rate?

After watching (learning outcomes)…

Why frame rate is important and how to measure it.

(Unique Video Reference: 5_LP_VR2)

Performance Bottlenecks Preview 11:10

In this video (objectives)…

  1. What are bottlenecks?
  2. Tools to identify bottlenecks.
  3. Game, render or GPU bound?

After watching (learning outcomes)…

Identify CPU or GPU bottlenecks in own games.

(Unique Video Reference: 6_LP_VR2)

Mid-section Quiz

Performance Optimisation Preview 13:07

In this video (objectives)…

  1. Likely causes of bottlenecks.
  2. Identifying vertex vs pixel bound.
  3. Improving the empty scene frame time.

After watching (learning outcomes)…

Diagnose common GPU issues.

(Unique Video Reference: 7_LP_VR2)

Reducing DrawCalls With Instancing Preview 12:03

In this video (objectives)…

  1. Log the number of DrawCalls.
  2. Recapping the Instanced Static Mesh.
  3. Replacing the meshes in the stroke.

After watching (learning outcomes)…

Replace multiple meshes with an Instanced Static Mesh.

(Unique Video Reference: 8_LP_VR2)

Rotating & Scaling Stroke Meshes Preview 13:29

In this video (objectives)…

  1. The rotation and scaling maths.
  2. The code outline.
  3. Rotating and scaling APIs.

After watching (learning outcomes)…

How to rotate and scale to fit between two points.

(Unique Video Reference: 9_LP_VR2)

Instanced Mesh Materials Preview 12:01

In this video (objectives)…

  1. Importing new meshes.
  2. Creating a material.
  3. Enabling the material for instanced static meshes.
  4. Hiding the stroke joints.

After watching (learning outcomes)…

How to add materials to instanced static meshes.

(Unique Video Reference: 10_LP_VR2)

Saving Game State Preview 13:21

In this video (objectives)…

  1. Creating a USaveGame subclass.
  2. Saving and Creating APIs.
  3. Our SaveGame header file.
  4. Implementing Save and Create.

After watching (learning outcomes)…

Be able to create and save a SaveGame.

(Unique Video Reference: 11_LP_VR2)

Mid-section Quiz

Loading A SaveGame Preview 11:57

In this video (objectives)…

  1. Setup saving from user input.
  2. Loading API.
  3. Using the loading API.
  4. Saving and loading a UPROPERTY.

After watching (learning outcomes)…

Load data from a save game file.

(Unique Video Reference: 12_LP_VR2)

Serialising The Game State Preview 15:17

In this video (objectives)…

  1. What is the state of our level?
  2. Defining the UPROPERTY.
  3. The SaveGame serialising API.
  4. Capture and spawn the strokes.

After watching (learning outcomes)…

How to serialise simple game state.

(Unique Video Reference: 13_LP_VR2)

Serialising Actors To Structs Preview 13:54

In this video (objectives)…

  1. Create Stroke state struct.
  2. The Stroke serialisation API.
  3. Implementing serialisation.

After watching (learning outcomes)…

How to use structs to serialise complex state.

(Unique Video Reference: 14_LP_VR2)

Renaming C++ Base Classes Preview 16:35

In this video (objectives)…

  1. Rename the HandController class.
  2. Setup an ActiveClassRedirect.
  3. Creating a base class.
  4. Extracting functionality.

After watching (learning outcomes)…

How to rename a C++ base class and extract functionality into a super class.

(Unique Video Reference: 15_LP_VR2)

Introduction To Vector Design Preview 19:17

In this video (objectives)…

  1. Introduction to the Daydream sticker sheet.
  2. Importing Sketch files into Figma.
  3. The basic tools in Figma.
  4. Understanding the DMM.
  5. Creating a simple layout.

After watching (learning outcomes)…

How to use Figma to create basic layouts.

(Unique Video Reference: 16_LP_VR2)

Mid-section Quiz

Understanding Good VR Design Preview 16:03

In this video (objectives)…

  1. Critique the Daydream designs.
  2. Critique you own design.

After watching (learning outcomes)…

How to critique user interface designs.

(Unique Video Reference: 17_LP_VR2)

Designing User Interface For VR Preview 16:49

In this video (objectives)…

  1. Creating a design frame.
  2. Create/capture requirements.
  3. Assemble a design.

After watching (learning outcomes)…

How to build a UI design in Figma.

(Unique Video Reference: 18_LP_VR2)

Ergonomic 3D UI Layout In Unreal Preview 14:04

In this video (objectives)…

  1. Create a placeholder widget.
  2. Displaying the widget in the scene.
  3. Placing the widget with spline guides.
  4. Scaling the widget.
  5. Placing the buttons.

After watching (learning outcomes)…

How to accurately place UI from a design.

(Unique Video Reference: 19_LP_VR2)

UI Widget Interaction In 3D Preview 14:30

In this video (objectives)…

  1. Introducing the Widget Interaction Component.
  2. Creating a button to test with.
  3. Setting up the Blueprints.
  4. Adding a Widget Interaction Component.
  5. Clicking the button.

After watching (learning outcomes)…

How UI selection works in VR with Unreal.

(Unique Video Reference: 20_LP_VR2)

Converting A Design To UMG - Part 1 Preview 12:58

In this video (objectives)…

  1. Setting up the grid layout.
  2. Exporting the card button graphics.
  3. Setting up the card button.
  4. Creating all the states.

After watching (learning outcomes)…

Converting button designs to working UMG buttons.

(Unique Video Reference: 21_LP_VR2)

Mid-section Quiz

Converting A Design To UMG - Part 2 Preview 12:33

In this video (objectives)…

  1. Creating the action bar widget.
  2. Laying out the buttons.
  3. Creating the button variations.

After watching (learning outcomes)…

How buttons scale with their contents.

(Unique Video Reference: 22_LP_VR2)

Converting A Design To UMG - Part 3 Preview 07:41

In this video (objectives)…

  1. Layout the images.
  2. Exporting the graphics.

After watching (learning outcomes)…

How to use a horizontal layout.

(Unique Video Reference: 23_LP_VR2)

Binding UPROPERTY to UMG Preview 11:38

In this video (objectives)…

  1. Add base class and reparent PaintingGrid.
  2. Bind the Uniform Grid Panel.
  3. Create blueprint interface to AddPainting and call it.

After watching (learning outcomes)…

How to bind a widget to C++.

(Unique Video Reference: 24_LP_VR2)

Spawning Widgets In C++ Preview 11:49

In this video (objectives)…

  1. Introduce the APIs. (CreateWidget, GetChildAt, AddChild)
  2. Creating the Card widget.
  3. Spawn a widget.
  4. Add to the size box.

After watching (learning outcomes)…

How to spawn widgets and add then to PanelWidgets.

(Unique Video Reference: 25_LP_VR2)

Converting PaintingPicker to C++ Preview 15:05

In this video (objectives)…

  1. Add PaintingPicker C++ parent.
  2. Create the essential components in C++.
  3. Copy the component values.
  4. Convert the blueprint to C++.

After watching (learning outcomes)…

Practice at reparenting Blueprints.

(Unique Video Reference: 26_LP_VR2)

Naming Each Slot Uniquely Preview 13:26

In this video (objectives)…

  1. Add a SlotName variable.
  2. Generate the variable on creation.
  3. Create a getter for SlotName.
  4. Update loading to take the SlotName.
  5. Create a new PaintingSaveGame on every load.

After watching (learning outcomes)…

Using UUIDs to generate unique string names.

(Unique Video Reference: 27_LP_VR2)

Mid-section Quiz

Iterating Over All SaveGames Preview 17:48

In this video (objectives)…

  1. Creating the PainterSaveGameIndex.
  2. The Index API.
  3. Using the API.
  4. Implementing Load() and Save().
  5. Implementing AddPainting() and GetPaintings().

After watching (learning outcomes)…

How to use and index to iterate over all save games.

(Unique Video Reference: 28_LP_VR2)

Populating The Game List UI Preview 10:24

In this video (objectives)…

  1. Change the AddPainting interface.
  2. Add at index.
  3. Add as many paintings as there are.
  4. Correct the order of slots.

After watching (learning outcomes)…

How to populate the UI lists.

(Unique Video Reference: 29_LP_VR2)

Binding Text Widgets To C++ Preview 07:57

In this video (objectives)…

  1. Add a text box to the card.
  2. Improve spacing of the grid.
  3. Creating a UPaintingGridCard parent class.
  4. Binding the TextBlock.

After watching (learning outcomes)…

How to make and bind UMG TextBlocks.

(Unique Video Reference: 30_LP_VR2)

Setting TextBlock Content From C++ Preview 09:38

In this video (objectives)…

  1. Creating the SetPaintingName interface.
  2. Calling the SetPaintingName interface.
  3. The UTextBlock API and FText.
  4. Implementing SetPaintingName.

After watching (learning outcomes)…

How to set TextBlock text in C++.

(Unique Video Reference: 31_LP_VR2)

Button Actions And Splash Screens Preview 10:47

In this video (objectives)…

  1. How to use the OpenLevel API.
  2. Binding the button OnClicked.
  3. Opening the "Canvas" level.
  4. How to get around the hanging issue.

After watching (learning outcomes)…

How to open levels smoothly in VR.

(Unique Video Reference: 32_LP_VR2)

Parsing Level Options In GameMode Preview 08:20

In this video (objectives)…

  1. Creating a GameMode.
  2. Handling the options with InitGame.
  3. Parsing out our option.

After watching (learning outcomes)…

How to parse level loading options.

(Unique Video Reference: 33_LP_VR2)

Mid-section Quiz

Loading Save Games In GameMode Preview 08:28

In this video (objectives)…

  1. Why we can't load the game in InitGame.
  2. Loading the game at start.
  3. Why we should hide the splash screen.

After watching (learning outcomes)…

When to hide a splash screen.

(Unique Video Reference: 34_LP_VR2)

Handling Saving In GameMode Preview 09:39

In this video (objectives)…

  1. Creating the GameMode SavePainting API.
  2. Calling the API.
  3. Making it save.
  4. Quitting to the Menu.

After watching (learning outcomes)…

When it's best to hide information and delegate.

(Unique Video Reference: 35_LP_VR2)

Initialize - BeginPlay For Widgets Preview 10:00

In this video (objectives)…

  1. Removing the old loading and creation code.
  2. When to bind buttons.
  3. Create an ActionBar C++ parent.
  4. Binding the "Add" button.
  5. Binding the "Delete" button.

After watching (learning outcomes)…

When to use Initialize in UserWidgets.

(Unique Video Reference: 36_LP_VR2)

Hooking Up The Add Functionality Preview 13:55

In this video (objectives)…

  1. Passing a reference down to ActionBar.
  2. Calling back up to PaintingPicker.
  3. Create the painting and reload.

After watching (learning outcomes)…

How to call up to a Widget's parent.

(Unique Video Reference: 37_LP_VR2)

Clearing Children of UPanelWidget Preview 06:55

In this video(objectives)…

  1. Create the API and the usage.
  2. Overview of the documentation you need.
  3. Iterating over the children.
  4. Clearing the children of the size box.

After watching(learning outcomes)…

How to iterate and clear children of a UPanelWidget.

(Unique Video Reference: 38_LP_VR2)

Mid-section Quiz

Connecting a LeftHandController Preview 11:48

In this video(objectives)…

  1. Create the PaletteMenuHandController.
  2. Add and spawn a left hand controller.
  3. Connecting in blueprint.
  4. Setting the MotionController hand.

After watching(learning outcomes)…

Revision of the HandController architecture.

(Unique Video Reference: 39_LP_VR2)

Adding Menus To Hand Controllers Preview 11:37

In this video(objectives)…

  1. Add a widget component to the controller.
  2. Create and setup a widget.

After watching(learning outcomes)…

Revision of the widget components.

(Unique Video Reference: 40_LP_VR2)

Overriding a Scene Component Preview 12:44

In this video(objectives)…

  1. Create new C++ derived class.
  2. Adding a custom widget to Blueprints.
  3. Overview of IsOverInteractableWidget API.
  4. Implementing the click behaviour.

After watching(learning outcomes)…

How to query the interface from a UWidgetInteractionComponent.

(Unique Video Reference: 41_LP_VR2)

Refactoring SaveAndQuit Preview 06:27

In this video(objectives)…

  1. Create UFUNCTION on GameMode.
  2. Calling the UFUNCTION.
  3. Moving the implementation.

After watching(learning outcomes)…

How to call GameMode functions from Blueprint.

(Unique Video Reference: 42_LP_VR2)

Create a Pagination Dot Widget Preview 05:27

In this video(objectives)…

  1. Create the C++ parent.
  2. Create the widget Blueprint and reparent.
  3. Setup with the image widget.
  4. Replace in the grid widget.

After watching(learning outcomes)…

Overview of the pagination system.

(Unique Video Reference: 43_LP_VR2)

Mid-section Quiz

Spawning a Pagination Dot Preview 09:15

In this video(objectives)…

  1. Creating the API.
  2. Temporarily calling the API.
  3. Implementing the spawning.

After watching(learning outcomes)…

Revision of spawning widgets.

(Unique Video Reference: 44_LP_VR2)

Editing UPanelSlot in C++ Preview 07:35

In this video(objectives)…

  1. What is a UPanelSlot.
  2. Getting the right slot type.
  3. Changing the padding.

After watching(learning outcomes)…

What a UPanelSlot does and how to use it.

(Unique Video Reference: 45_LP_VR2)

Transparent Widgets In The World Preview 10:02

In this video(objectives)…

  1. Creating the SetActive API.
  2. Binding the image.
  3. Blend modes: transparent vs masked.
  4. Implementing SetActive.
  5. Reproducing the dots in code.

After watching(learning outcomes)…

The differences between blend modes and when to use them.

(Unique Video Reference: 46_LP_VR2)

Calculating Number Of Pages Preview 12:55

In this video(objectives)…

  1. How to calculate number of pages.
  2. Implementing GetNumberOfSlots().
  3. Calculating the number of slots.
  4. Implementing Number of pages.

After watching(learning outcomes)…

How to calculate the number of pages to paginate a given number of items.

(Unique Video Reference: 47_LP_VR2)

Mid-section Quiz

Refreshing The Pagination State Preview 10:17

In this video(objectives)…

  1. Refactoring refresh.
  2. Adding a current page variable.
  3. Add one dot per page.
  4. Clearing the pagination dots.
  5. Selecting the current page.

(Unique Video Reference: 48_LP_VR2)

Latching an Analogue Input Preview 14:02

In this video(objectives)…

  1. Binding an axis for pagination.
  2. Overview of a latching mechanism.
  3. Log latched offsets.

After watching(learning outcomes)…

How to turn an analogue input into an action.

(Unique Video Reference: 49_LP_VR2)

Moving Between Pages Preview 09:24

In this video(objectives)…

  1. Creating the pagination API.
  2. Using the API with TActorIterator.
  3. Implementing an absorbing boundary.

After watching(learning outcomes)…

How to implement an absorbing boundary.

(Unique Video Reference: 50_LP_VR2)

Updating The Pages Preview 07:25

In this video(objectives)…

  1. Calculating the StartOffset.
  2. For loop over the slots.
  3. Checking the last page.

After watching(learning outcomes)…

How to display paginated results.

(Unique Video Reference: 51_LP_VR2)

How To Become A VR Master Preview 07:40

In this video(objectives)…

  1. How to read the prototype code
  2. Overview of the features
  3. MEGA Challenge!

After watching(learning outcomes)…

To have the confidence to continue your VR journey.

(Unique Video Reference: 52_LP_VR2)

End of Section Quiz

Self Assessment

Not sure if you are ready for the course yet? Take this test to find out.

Don't worry if some areas are weak. The next lecture (called "BONUS LECTURE") will include links to helpful course so that you can brush up on the weaker areas.

If you pass, you're good to go!

BONUS LECTURE Preview 00:46