Lab 3 - Personal Project Ergonomics & Optimization

Exercise

Beginner

+70XP

2h 10m

Unity Technologies

Lab 3 - Personal Project Ergonomics & Optimization

By the end of this lab, your personal project will be filled with beautiful art, optimized for performance and ready to share.

This lab will draw on skills learned in the following lessons:

This lab is part of the Create with VR course.

Overview Video

1. Fill in Design Document for ergonomics & optimization

Before you resume work on your project, you need a plan for what you’re actually going to work on. You’ll continue filling out your design document so you have a clear plan of action for this lab.

1. Pick up where you left off with your design document:

  • Re-open the document you created during Lab 1 and continued working on during Lab 2.

2. Fill out Section 5 (Optimization & Publishing) of the document:

  • List the ways you intend to make the user experience more comfortable or accessible.
  • Write down the target performance metrics for your target device(s).
  • Describe the lighting strategy you will implement.

3. (Optional) Add more specific details to your design document:

  • Continue to fill out section 6 (Other features)
  • Continue to fill out section 7 (Sketch)
  • Continue to fill out section 8 (Timeline)

You should now have section 4 of your design document complete, providing direction for this lab where you will be implementing your app’s core functionality.

2. Replace primitive objects with 3D art

Before you begin optimizing your app and improving the user experience, it’s time to replace some of the basic assets with some real 3D art.

1. Browse assets on the Unity Asset Store:

Tip: You can also filter by “Free”.

2. Import an asset pack you like:

  • Select Add to My Assets > Open in Unity.
  • From the Package Manager window, select Download.
  • Select Import to add the assets to your project.

3. To create your own 3D models inside Unity using Probuilder:

  • From the Package Manager window, install the Probuilder package.

4. Replace the basic shapes in your scene with custom or imported 3D art:

  • Add the 3D models as child GameObjects of empty parent GameObjects in your scene.
  • To achieve appropriate scale, adjust the scale of the child GameObject rather than the scale of the parent GameObject.
  • As necessary, add colliders to your GameObjects to make them collide appropriately.
  • As necessary, adjust the attach points of your GameObjects so that they are grabbed appropriately.
  • If possible, try to use the same shaders to reduce draw calls.

Your scene should now look a lot nicer with some real 3D art.

Related resources:

3. Improve comfort and accessibility

You should take time to consider how comfortable and accessible your app will be. This will allow it to be enjoyed by as many people as possible and make sure fewer people are excluded from using your app due to design decisions you’ve made.

1. Make sure your app’s locomotion is as comfortable as possible:

2. Add settings and menu options that increase the accessibility of your app:

Your app should now be more comfortable and accessible, allowing it to be enjoyed by more people than it was before.

4. Optimize draw calls and polycount

Now that the app is largely functional and has some real 3D assets, you can attempt to optimize your app’s performance to hit your target metrics.

1. Determine how your app is currently performing, including fps, draw calls (batches), and polycount (tris):

2. Reduce polycount (tris):

  • Follow the instructions in the Optimization tutorial, including replacing high-poly assets with lower-poly ones.

3. Reduce draw calls (batches):

  • Follow the instructions in the Optimization tutorial, including marking GameObjects as static and using shared materials.

4. Improve jagged lines with anti-aliasing:

5. Quickly experiment with changes to your app’s performance:

  • Locate the UniversalRenderPipelineAsset and tweak its settings to see what has an impact.

You should now have an understanding of how your app is performing and, if it’s performing poorly, what the cause of that poor performance might be. You shouldn’t be discouraged if your frames per second is still too low, though, since you haven’t yet optimized lighting.

Related resources:

5. Optimize lighting

In VR, performance is critical to the user experience, and lighting is one of the biggest components of performance. In order to optimize performance for VR, baking most of the lighting is highly recommended, using a minimal number of real-time or mixed lights.

1. Add and bake environmental lighting in your scene:

2. Improve realtime lighting with mixed lights and light probes:

You should now have baked lighting in your scene with realtime effects on dynamic GameObjects from mixed lights and light probes.

6. Confirm settings and build your app

The final step before building a version of an app that you would consider sharing or publishing is double-checking that you’re using all of the recommended build settings for your target platform.

1. Confirm that your app’s project settings are following best practices for VR:

  • Follow the instructions in the Building and Sharing tutorial, including Player settings, Quality settings, Build settings, Render Pipeline Asset properties, and Lighting and Shadow settings.

2. Build a version of your app that can be shared or published:

You should now have a built app, ready for distribution, following all best practices for build settings.

7. Recap

New functionality:

  • New art
  • Improved comfort and accessibility
  • Optimized key metrics
  • Improved, baked lighting
  • Built app

New concepts and skills:

  • Optimizing and publishing your own VR app.

Next lab:

  • Next steps and the rest of your VR development life!
Optional step

8. Share your work

We would love to see what you've created with VR!

If you went above and beyond in your VR room, the challenge, or your personal project for this Unit, please take a screenshot of your project or do a screen-recording walking us through it, then post it here to share what you’ve made. You can take screenshots within the Unity Editor or try to capture footage directly from the device.

We highly recommend that you comment on at least one other creator's submission. What do you like about the project? What would be a cool new feature they might consider adding?

Additional resources on capturing footage directly from an Oculus device:


Note:

  • Oculus devices cannot currently capture the microphone input during video recordings, but the app’s audio is recorded.
  • Due to the variable refresh rate in videos, recorded audio will likely be out of sync from the video footage. To sync the audio and video perfectly, you may need to edit them in a video editing program.

Please login to submit

Complete this Tutorial

Submission Gallery

VR Room Project

VR Room Project

VR Room Project submission 3

U
unity_701E5333BC911976A7F4
10
0
Modern_VRRoom

Modern_VRRoom

This project was developed by completing the Unity Learn Create with VR course and extending it with the additional assignment requirements. The goal was to create an immersive room-scale VR experience using Unity and the XR Interaction Toolkit. Throughout the course, I learned how to configure a VR project, set up the XR Origin, camera, and controllers, implement object interaction using XR Grab Interactable components, create teleportation locomotion with Teleportation Areas and Anchors, build world-space UI, integrate spatial audio, and apply VR design best practices and basic performance optimization. The completed project includes a fully interactive VR environment where users can grab, move, and release objects naturally using the controllers. Users can navigate the environment through teleportation, creating a comfortable room-scale experience. To satisfy the assignment requirements, I replaced the default controller models with animated hand models that respond to grip and trigger inputs, improving realism and immersion. An analog wall clock was also implemented using C# scripting. Instead of using Unity's Animation window, the script reads the computer's current system time and updates the hour, minute, and second hands in real time. To improve performance, I used baked lighting, static objects where appropriate, optimized textures, and an organized scene hierarchy to maintain smooth VR performance. This project strengthened my understanding of Unity XR development, object interaction, locomotion, controller input, real-time scripting, and performance optimization while providing practical experience in building an engaging and interactive virtual reality application.

U
unity_5B7B39447BE3393BA9B4
22
0
Bedroom

Bedroom

I've add graphic settings

I
Ivanchik-cyber
40
0
ttt

ttt

sadacaC

I
irfanmohamed2124
127
0
VR LIGHTING

VR LIGHTING

Lighting and optimazationand light probe added

M
muneeshg2000
111
1
Unity Create with VR – Unit 3 Project

Unity Create with VR – Unit 3 Project

This video showcases my completed work for Unit 3 of the Unity “Create with VR” course | EcoPark VR, VR Room & Challenges Implementation

H
HdzSergio
110
0