> For the complete documentation index, see [llms.txt](https://carla-gannis.gitbook.io/dm-gy-9103-vr-fa-2020-1/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://carla-gannis.gitbook.io/dm-gy-9103-vr-fa-2020-1/links-to-applications-tutorials.md).

# Links to Applications/Tutorials

## RESOURCES, FALL 2020: <a href="#week-11" id="week-11"></a>

**IDM XR LAB WEBSITE:**

* <https://wp.nyu.edu/idmxrlab/category/tutorial/>

**CARLA TUTORIALS & SCRIPTS:**

* **LIGHTING  (Light Maps and Light Probe Groups)**&#x20;

  * [Light Maps and Light Probe Groups](https://www.youtube.com/watch?v=TF99Qz1inSw)

* **POST PROCESSING, CHANGING SCENES, UI INTERACTIVITY, ANIMATION ON XR RIG, ANIMATED SHADERS**
  * [LotsOfStuff SceneChangePostProcessUI](https://www.youtube.com/watch?v=jYogdMqyojA\&feature=youtu.be)
  * [LotsOfStuff02 RememberAddScenesToBuild](https://www.youtube.com/watch?v=HQCBGwZ_cwQ\&feature=youtu.be)<br>

* **SNAP TURN SCRIPT WITH FADE (STEAM, can it be adapted for XR Toolkit?)**

  ```
  using UnityEngine;
  using System.Collections;

  namespace Valve.VR.InteractionSystem
  {
      //-----------------------------------------------------------------------------
      public class SnapTurn : MonoBehaviour
      {
          public float snapAngle = 90.0f;

          public bool showTurnAnimation = true;

          public AudioSource snapTurnSource;
          public AudioClip rotateSound;

          public GameObject rotateRightFX;
          public GameObject rotateLeftFX;

          public SteamVR_Action_Boolean snapLeftAction = SteamVR_Input.GetBooleanAction("SnapTurnLeft");
          public SteamVR_Action_Boolean snapRightAction = SteamVR_Input.GetBooleanAction("SnapTurnRight");

          public bool fadeScreen = true;
          public float fadeTime = 0.1f;
          public Color screenFadeColor = Color.black;

          public float distanceFromFace = 1.3f;
          public Vector3 additionalOffset = new Vector3(0, -0.3f, 0);

          public static float teleportLastActiveTime;

          private bool canRotate = true;

          public float canTurnEverySeconds = 0.4f;


          private void Start()
          {
              AllOff();
          }

          private void AllOff()
          {
              if (rotateLeftFX != null)
                  rotateLeftFX.SetActive(false);

              if (rotateRightFX != null)
                  rotateRightFX.SetActive(false);
          }


          private void Update()
          {
              Player player = Player.instance;

              if (canRotate && snapLeftAction != null && snapRightAction != null && snapLeftAction.activeBinding && snapRightAction.activeBinding)
              {
                  //only allow snap turning after a quarter second after the last teleport
                  if (Time.time < (teleportLastActiveTime + canTurnEverySeconds))
                      return;

                  // only allow snap turning when not holding something

                  bool rightHandValid = player.rightHand.currentAttachedObject == null ||
                      (player.rightHand.currentAttachedObject != null
                      && player.rightHand.currentAttachedTeleportManager != null
                      && player.rightHand.currentAttachedTeleportManager.teleportAllowed);

                  bool leftHandValid = player.leftHand.currentAttachedObject == null ||
                      (player.leftHand.currentAttachedObject != null
                      && player.leftHand.currentAttachedTeleportManager != null
                      && player.leftHand.currentAttachedTeleportManager.teleportAllowed);


                  bool leftHandTurnLeft = snapLeftAction.GetStateDown(SteamVR_Input_Sources.LeftHand) && leftHandValid;
                  bool rightHandTurnLeft = snapLeftAction.GetStateDown(SteamVR_Input_Sources.RightHand) && rightHandValid;

                  bool leftHandTurnRight = snapRightAction.GetStateDown(SteamVR_Input_Sources.LeftHand) && leftHandValid;
                  bool rightHandTurnRight = snapRightAction.GetStateDown(SteamVR_Input_Sources.RightHand) && rightHandValid;

                  if (leftHandTurnLeft || rightHandTurnLeft)
                  {
                      RotatePlayer(-snapAngle);
                  }
                  else if (leftHandTurnRight || rightHandTurnRight)
                  {
                      RotatePlayer(snapAngle);
                  }
              }
          }


          private Coroutine rotateCoroutine;
          public void RotatePlayer(float angle)
          {
              if (rotateCoroutine != null)
              {
                  StopCoroutine(rotateCoroutine);
                  AllOff();
              }

              rotateCoroutine = StartCoroutine(DoRotatePlayer(angle));
          }

          //-----------------------------------------------------
          private IEnumerator DoRotatePlayer(float angle)
          {
              Player player = Player.instance;

              canRotate = false;

              snapTurnSource.panStereo = angle / 90;
              snapTurnSource.PlayOneShot(rotateSound);

              if (fadeScreen)
              {
                  SteamVR_Fade.Start(Color.clear, 0);

                  Color tColor = screenFadeColor;
                  tColor = tColor.linear * 0.6f;
                  SteamVR_Fade.Start(tColor, fadeTime);
              }

              yield return new WaitForSeconds(fadeTime);

              Vector3 playerFeetOffset = player.trackingOriginTransform.position - player.feetPositionGuess;
              player.trackingOriginTransform.position -= playerFeetOffset;
              player.transform.Rotate(Vector3.up, angle);
              playerFeetOffset = Quaternion.Euler(0.0f, angle, 0.0f) * playerFeetOffset;
              player.trackingOriginTransform.position += playerFeetOffset;

              GameObject fx = angle > 0 ? rotateRightFX : rotateLeftFX;

              if (showTurnAnimation)
                  ShowRotateFX(fx);

              if (fadeScreen)
              {
                  SteamVR_Fade.Start(Color.clear, fadeTime);
              }

              float startTime = Time.time;
              float endTime = startTime + canTurnEverySeconds;

              while (Time.time <= endTime)
              {
                  yield return null;
                  UpdateOrientation(fx);
              };

              fx.SetActive(false);
              canRotate = true;
          }

          void ShowRotateFX(GameObject fx)
          {
              if (fx == null)
                  return;

              fx.SetActive(false);

              UpdateOrientation(fx);

              fx.SetActive(true);

              UpdateOrientation(fx);
          }

          private void UpdateOrientation(GameObject fx)
          {
              Player player = Player.instance;

              //position fx in front of face
              this.transform.position = player.hmdTransform.position + (player.hmdTransform.forward * distanceFromFace);
              this.transform.rotation = Quaternion.LookRotation(player.hmdTransform.position - this.transform.position, Vector3.up);
              this.transform.Translate(additionalOffset, Space.Self);
              this.transform.rotation = Quaternion.LookRotation(player.hmdTransform.position - this.transform.position, Vector3.up);
          }
      }
  }
  ```

* **XR TOOLKIT**
  * [XRToolkit Locomotion Demo](https://www.youtube.com/watch?v=A2YUWYQHMCc\&list=PL7J3RrJiIfAz9JQhI_rfBDbuX7x9oH_tW\&index=28\&t=409s)
  * [XRToolkit 03WorldInteraction Simple](https://www.youtube.com/watch?v=rh5PSkscqnE\&list=PL7J3RrJiIfAz9JQhI_rfBDbuX7x9oH_tW\&index=27)
  * [XRToolkit 04HMDDemoOfWorldInteraction MoreCompl**ex**](https://www.youtube.com/watch?v=_930NyH6cEk\&list=PL7J3RrJiIfAz9JQhI_rfBDbuX7x9oH_tW\&index=26)
  * [XRToolkit05 WorldInteraction MoreComplex](https://www.youtube.com/watch?v=BzfqdwQ6A8g\&list=PL7J3RrJiIfAz9JQhI_rfBDbuX7x9oH_tW\&index=25)
  * [XRToolkit06 WorldInteractions AndMoreComplexGrabInteractions](https://www.youtube.com/watch?v=PDoWRhL6xdE\&list=PL7J3RrJiIfAz9JQhI_rfBDbuX7x9oH_tW\&index=24)
  * [XRToolkit07YourOwnScene 01](https://www.youtube.com/watch?v=iuqsJfcw08g\&list=PL7J3RrJiIfAz9JQhI_rfBDbuX7x9oH_tW\&index=23)
  * [XRToolkit07 YourOwnScene 02](https://www.youtube.com/watch?v=71iZYjZJqog\&list=PL7J3RrJiIfAz9JQhI_rfBDbuX7x9oH_tW\&index=22)
  * [XRToolkit07YourOwnScene 03AddingInteractiveCharacter 01](https://www.youtube.com/watch?v=Kel0J_TlNb0\&list=PL7J3RrJiIfAz9JQhI_rfBDbuX7x9oH_tW\&index=21)
  * [XRToolkit07 YourOwnScene 03 AddingInteractiveCharacters 02](https://www.youtube.com/watch?v=k6M2xUTE2PU\&list=PL7J3RrJiIfAz9JQhI_rfBDbuX7x9oH_tW\&index=20\&t=20s)<br>

* **AUTHORING** for Mozilla Hubs using [Spoke](https://hubs.mozilla.com/spoke) - **53 minutes**
  * Tutorial Videos:&#x20;
    * (1) [mozilla hubs tutorial 01](https://www.youtube.com/watch?v=CYZLmxrxUzU\&list=PL7J3RrJiIfAz9JQhI_rfBDbuX7x9oH_tW\&index=4\&t=0s) (12:42) - working in spoke
    * (2) [mozilla hubs tutorial 02](https://www.youtube.com/watch?v=lBJLh9_7-pQ\&list=PL7J3RrJiIfAz9JQhI_rfBDbuX7x9oH_tW\&index=5\&t=0s) (38:11) - working in spoke and playing in hubs
    * (3) [mozilla hubs tutorial 03](https://www.youtube.com/watch?v=txHvqosL9Yw\&list=PL7J3RrJiIfAz9JQhI_rfBDbuX7x9oH_tW\&index=6\&t=0s) (02:00) - teleporting/leaving hubs<br>

* **INTRO TO UNITY** (demo) Basic Setup, Packages, Asset store&#x20;

  (1) [unity tutorial 01: installation](https://www.youtube.com/watch?v=Oj1FqLoSRWY\&list=PL7J3RrJiIfAz9JQhI_rfBDbuX7x9oH_tW\&index=7\&t=0s) (01:08) installing the editor to your computer

  * (2) [unity tutorial 01: editor part 01](https://www.youtube.com/watch?v=r6n4a_yhQ5A) (11:17) getting to know the UI
  * (3) [unity tutorial 01: editor part 02](https://www.youtube.com/watch?v=23frh4aQrCQ) (08:46) still getting to know the UI
  * (4) [unity tutorial 01: editor part 03 ](https://www.youtube.com/watch?v=uLycUpqq17I)(06:21) creating/assigning materials to objects
  * (5) [unity tutorial 01: editor part 04](https://www.youtube.com/watch?v=jPrd7VBJQqU) (17:21) game mode/adding simple physics to the objects/asset store/package manager/exporting as a package<br>

* **BUILD SETTINGS** with Oculus Quest <https://www.youtube.com/watch?v=LZjUn2qvJC0><br>

* **UNITY QUEST FUN** (full tutorial to be posted here soon) <https://www.youtube.com/watch?v=U86r8F1Z1ZY&list=PL7J3RrJiIfAz9JQhI_rfBDbuX7x9oH_tW&index=19>

**ADDITIONAL TUTORIALS/RESOURCES**

* [Unity XR Toolkit Setup](https://www.youtube.com/playlist?list=PLmc6GPFDyfw90Xo_T69Va6kw07qJ8nLz7)
* Unity XR Tookit Git Hub Repository - [Toolkit Examples](https://github.com/Unity-Technologies/XR-Interaction-Toolkit-Examples) (Unity Files)
* [Unity XR](https://docs.unity3d.com/Manual/VROverview.html)
* [Unity XR Interaction Toolkit](https://www.youtube.com/watch?v=Tg6HvQkbye8) - XR Teleporting Setup with Oculus Quest
* [Handling Hand Tracking & Controllers on Oculus Quest with VRTK](https://www.youtube.com/watch?v=4hpQ8N0FyD8) (2019 Unity)
* [Virtual Virtual Mapping (Accessed as Individual Controllers)](https://developer.oculus.com/documentation/unity/unity-ovrinput/?locale=en_US)
* [Unity Build Settings Oculus Quest 2020](https://www.youtube.com/watch?v=KLMf4yTCc0w) (Updated)
* [Unity Pipeline](https://docs.unity3d.com/Manual/xr-render-pipeline-compatibility.html)
* [Learn.Unity](https://learn.unity.com/) (Tutorials by Unity)
* [Unity User Manual / Scripting](https://docs.unity3d.com/Manual/ScriptingSection.html)
* [Unity User Manual / Audio](https://docs.unity3d.com/Manual/Audio.html)
* [Unity User Manual / Animation](https://docs.unity3d.com/Manual/AnimationSection.html)
* [Unity User Manual / User Interfaces (UI)](https://docs.unity3d.com/Manual/UIToolkits.html)
* [Unity User Manual / XR](https://docs.unity3d.com/Manual/XR.html)

**SPECIFIC FUNCTIONALITY TUTORIALS**

* [Creating a Character Controller Using Unity](https://www.youtube.com/watch?v=wnK5qa51zaY)
* [Scene Loader for Unity XR Toolkit \[02\]](https://www.youtube.com/watch?v=kL1FYptitEM)
* [Hand Presence](https://www.youtube.com/watch?v=ihG5nE0thW0\&list=PLmc6GPFDyfw_9V0-csA2O3rKmjX99XEkX)&#x20;
* [VR Sound Design in Unity](https://gamedevbeginner.com/vr-sound-design-in-unity-getting-started-guide/)
* [**AUDIO DESIGN FOR UNITY - COMPARISON OF DIFFERENT AUDIO SPATIALIZERS**](https://blog.dearvr.com/overview/dearvr-unity-examined-in-masters-thesis)

{% embed url="<https://www.youtube.com/watch?v=lg-tO-we_kU&feature=youtu.be>" %}

**GREAT YOU TUBE CHANNELS TO FOLLOW:**

* [ Dilmer Valecillos](https://www.youtube.com/channel/UCHM37DnT_QGJT5Zyl4EmqcA)
* [Mr. Pineapple Studio](https://www.youtube.com/channel/UC8XUYz0CF8GGqpE8SGWs5mw)
* [Valem](https://www.youtube.com/channel/UCPJlesN59MzHPPCp0Lg8sLw)
* [Fused VR](https://www.youtube.com/c/FusedVR/videos)
* [Brackeys](https://www.youtube.com/channel/UCYbK_tjZ2OrIZFBvU6CCMiA)
* [VR With Andrew](https://www.youtube.com/channel/UCG8bDPqp3jykCGbx-CiL7VQ)

{% embed url="<https://unity.com/>" %}

{% embed url="<https://learn.unity.com/>" %}

{% embed url="<https://docs.unity3d.com/Manual/index.html>" %}

{% embed url="<https://store.steampowered.com/>" %}

{% embed url="<https://www.vive.com/us/>" %}

{% embed url="<https://www.oculus.com/?locale=en_US>" %}

## ARCHIVE OF RESOURCES, FALL 2019: <a href="#week-11" id="week-11"></a>

## **Week 09** <a href="#week-07" id="week-07"></a>

**Unity Integration with Github**\
&#x20;[Mark Young :: YouTube](https://www.youtube.com/watch?v=yqF1Ne49LEQ) (this is a series)

**Customizable Hands, Teleportation, Touchpad Movement** <https://www.youtube.com/watch?v=5C6zr4Q5AlA>​

​

**Optimizing Unity Files**

​<https://www.youtube.com/watch?v=w0n4fuC4fNU>​

## Shaders in Unity with Amplify <a href="#shaders-in-unity-with-amplify" id="shaders-in-unity-with-amplify"></a>

Create Dynamic Materials Without the Need for Code

​<https://bit.ly/334UL6y>​

## **Week 08** <a href="#week-07" id="week-07"></a>

​[https://catlikecoding.com/unity/tutorials/](https://urldefense.proofpoint.com/v2/url?u=https-3A__catlikecoding.com_unity_tutorials_\&d=DwMFAw\&c=slrrB7dE8n7gBJbeO0g-IQ\&r=RuV-PJ1YCmh4C-JfLYLZl_SOSpGp1h-x_8zZEWQpmkA\&m=oHpPrYeNbmewcLgUVtH28aW9oArOglLEsBJYlLpOwvA\&s=tDoZORTYvxpWIDejmZddy71ZZylLV8IJ23dSo_pvOes\&e=)​

There's a few different thoughts on getting Processing to work inside Unity.&#x20;

​[https://www.uni-weimar.de/kunst-und-gestaltung/wiki/GMU:Tutorials/Networking/Controlling\_Unity\_with\_Processing](https://urldefense.proofpoint.com/v2/url?u=https-3A__www.uni-2Dweimar.de_kunst-2Dund-2Dgestaltung_wiki_GMU-3ATutorials_Networking_Controlling-5FUnity-5Fwith-5FProcessing\&d=DwMFAw\&c=slrrB7dE8n7gBJbeO0g-IQ\&r=RuV-PJ1YCmh4C-JfLYLZl_SOSpGp1h-x_8zZEWQpmkA\&m=oHpPrYeNbmewcLgUVtH28aW9oArOglLEsBJYlLpOwvA\&s=lExLQpQ4NRgQmMuyg52sCzd1BTifCjPWmFMvLRj1U0k\&e=)​

​[https://assetstore.unity.com/packages/tools/input-management/osc-simpl-53710](https://urldefense.proofpoint.com/v2/url?u=https-3A__assetstore.unity.com_packages_tools_input-2Dmanagement_osc-2Dsimpl-2D53710\&d=DwMFAw\&c=slrrB7dE8n7gBJbeO0g-IQ\&r=RuV-PJ1YCmh4C-JfLYLZl_SOSpGp1h-x_8zZEWQpmkA\&m=oHpPrYeNbmewcLgUVtH28aW9oArOglLEsBJYlLpOwvA\&s=RIQD97TmGu7vwR3s_1eOoCoh2cGBpVxq1b4mEUE-F88\&e=)​

​[https://answers.unity.com/questions/520581/how-to-send-data-from-client-to-client.html](https://urldefense.proofpoint.com/v2/url?u=https-3A__answers.unity.com_questions_520581_how-2Dto-2Dsend-2Ddata-2Dfrom-2Dclient-2Dto-2Dclient.html\&d=DwMFAw\&c=slrrB7dE8n7gBJbeO0g-IQ\&r=RuV-PJ1YCmh4C-JfLYLZl_SOSpGp1h-x_8zZEWQpmkA\&m=oHpPrYeNbmewcLgUVtH28aW9oArOglLEsBJYlLpOwvA\&s=3Wv7g2Ga74qSPfKzx55lKq_GjmgyQT6LFIOgoHRFQ-0\&e=)​

Particle Systems in Unibyt

​[https://mobile.twitter.com/\_kzr](https://urldefense.proofpoint.com/v2/url?u=https-3A__mobile.twitter.com_-5Fkzr\&d=DwMFAw\&c=slrrB7dE8n7gBJbeO0g-IQ\&r=RuV-PJ1YCmh4C-JfLYLZl_SOSpGp1h-x_8zZEWQpmkA\&m=oHpPrYeNbmewcLgUVtH28aW9oArOglLEsBJYlLpOwvA\&s=ZpH_lZcp1AyoC1q9SwsFERExQg5alA6wguBvp2RD9zw\&e=)​

​[https://blogs.unity3d.com/2018/11/27/creating-explosive-visuals-with-the-visual-effect-graph/](https://urldefense.proofpoint.com/v2/url?u=https-3A__blogs.unity3d.com_2018_11_27_creating-2Dexplosive-2Dvisuals-2Dwith-2Dthe-2Dvisual-2Deffect-2Dgraph_\&d=DwMFAw\&c=slrrB7dE8n7gBJbeO0g-IQ\&r=RuV-PJ1YCmh4C-JfLYLZl_SOSpGp1h-x_8zZEWQpmkA\&m=oHpPrYeNbmewcLgUVtH28aW9oArOglLEsBJYlLpOwvA\&s=0XyiqOkbEwDVNHaTlxXMG56tkcz8WCr6HF4mr2zhzAI\&e=)​

​

Rendering 360 Images in Maya

​<https://www.youtube.com/watch?v=m6aNOBsNRYM>​

​<https://www.youtube.com/watch?v=q4RK77jspvU>​

Here's an example of a 360 room I built in Maya: <https://aworldofonesown.glitch.me/>​

​

## **Week 07**

**TUTORIALS**\
**MAYA 3D**\
[Maya\_CreatingARockyPlane](https://www.youtube.com/watch?v=Mr2bddpFbv4)\
[Maya\_Rigging\_Part01](https://www.youtube.com/watch?v=cOokoFED7QE)\
[Maya\_Rigging\_Part02](https://www.youtube.com/watch?v=LWrKiOKuK4o)\
[Maya\_Rigging\_Part03](https://www.youtube.com/watch?v=AK34DUULP6I)\
[Maya\_Retopology for Beginners](https://www.youtube.com/watch?v=xpDWta5O3n8)\
[Maya\_Create a Normal Map](https://www.youtube.com/watch?v=7QeZlXo3PS0)\
(why to use normal maps: <https://docs.unity3d.com/Manual/StandardShaderMaterialParameterNormalMap.html>)

**UNITY**\
**Shading, Lighting, Skyboxes**\
[Unity-How To Make a Skybox in Photoshop](https://www.youtube.com/watch?v=-ZutidNYVRE)\
[Unity\_Create a Reflection Probe](https://www.youtube.com/watch?v=lhELeLnynI8) (lighting)\
[Unity\_LightWeightRenderPipeline](https://blogs.unity3d.com/ru/2018/02/21/the-lightweight-render-pipeline-optimizing-real-time-performance/)\
[Unity\_Materials Color and Texture](https://www.youtube.com/watch?v=V72pMtqMgFk) Part 1\
[Unity\_Materials Color and Texture](https://www.youtube.com/watch?v=VGjliaaALSk\&t=18s) (Emission & Transparency) Part 2\
[Unity\_LightProbes](https://www.youtube.com/watch?v=TNkuZetMy0s)\
\
**Animation & Video**\
[Unity\_CreatingAnimation](https://www.linkedin.com/learning/unity-level-design/creating-animation-in-unity?u=2131553)\
[Unity\_AnimatedVideoTexture](https://www.youtube.com/watch?v=9R7D3YaKIdk)\
[Unity\_Video on a Screen Object](https://www.youtube.com/watch?v=GOWFCYepN2c)

**Systems**\
[Unity\_3D solar system with OpenGL and C#](https://www.codeproject.com/Articles/577259/3D-solar-system-with-OpenGL-and-Csharp)

**Interactivity**\
[Unity\_ViveTriggerPressDept (SteamVR)](https://www.youtube.com/watch?v=mYIkMSTVABE)\
[Unity\_VR Body\_3DOF](https://assetstore.unity.com/packages/tools/camera/vr-body-79337?aid=1101lHIq\&cid=1100l6E9Xw6V\&utm_source=aff)\
[Unity\_InputUsingActions](https://www.youtube.com/watch?v=bn8eMxBcI70)\
[Unity\_LensFlare](https://www.youtube.com/watch?v=pon7oMtZltY)\
[Unity\_FlyingLikeSuperman](https://www.youtube.com/watch?v=p9u3yLUR5CQ)\
[Unity\_FlyingLeftAndRight](https://www.youtube.com/watch?v=6YPxRDZgzA4)\
[Unity\_FortuneWheelSpinner](https://www.youtube.com/watch?v=_idZv2n7dhM)\
[Unity\_Opening a Door](https://www.youtube.com/watch?v=3cJ_uq1m-dg)\
[Unity\_Teleportation and Grabbing Objects](https://www.youtube.com/watch?v=iJ0oNYIUFJo)\
[Unity\_TeleportationForOculus ](https://www.youtube.com/watch?v=r1kF0PhwQ8E)(no code)\
[Unity\_Grabbing, Walking, Opening Doors](https://www.youtube.com/watch?v=itxg1FSSfEk)\
[Unity\_PaintingInVR](https://www.reddit.com/r/Unity3D/comments/8bvqfa/painting_in_vr_my_implementation/)\
[Unity\_SwitchingScenes with C#](https://www.youtube.com/watch?v=9lPCv9kkbSI)\
[Unity\_SteamVR\_LoadLevels](https://medium.com/fusedvr/implementing-vr-scene-transitions-c27861a9ac77)\
[Unity\_Basic Loading Levels w Steam VR](https://www.youtube.com/watch?v=AvCW7GZik9g)\
[Unity\_Creating a Button](https://wirewhiz.com/vr-button-in-unity/)\
[Unity\_Switching Between Scenes with Buttons](https://www.youtube.com/watch?v=FSt5xrFHaFU)\
[Unity\_Keyboard and Joystick Controls in Unity 2019!](https://www.youtube.com/watch?v=Gz0YcjXBJ3U) (New Input System Tutorial)

**Altering Body Perception**\
[Unity\_The Resizable Human](https://blogs.unity3d.com/2017/04/28/altering-body-perception-in-vr/)\
\
**How to Make Simple Games**\
[Unity\_How to Make a Horror Game in Virtual Reality](https://www.youtube.com/watch?v=LihEW5a1Tjw) (this one for the dream projects)\
[Unity\_How to Make an Oculus Quest Game](https://www.youtube.com/watch?v=qiJpjnzW-mw)\
[Explorer 3D Game Kit](https://learn.unity.com/project/3d-game-kit) (no code)

**Asset Store** (Drawing & Painting + UI)\
[VR Brush](https://assetstore.unity.com/packages/tools/integration/vr-brush-101781) ($6.99) For painting in VR\
[VR UI Kit](https://assetstore.unity.com/packages/tools/gui/vr-uikit-bootstrap-your-vr-app-with-ease-128236) ($29.99) Build Cross-platform VR App With Ease

**PLATFORMS**\
**You can render directly to Oculus Rift and HTC Vive**\
Oculus Go, Oculus Quest, and Gear VR are a little more complicated\
[Oculus Quest Development in Unity](https://medium.com/virtual-reality-virtual-people/oculus-quest-development-in-unity-b3bac62fda87) (text based)\
[Oculus Quest Development in Unity](https://www.youtube.com/watch?v=eySe4Wj6xbk) (video based)

**UNITY MANUAL**\
[Graphics](https://docs.unity3d.com/Manual/Graphics.html)\
[Audio](https://docs.unity3d.com/Manual/Audio.html)\
[VR Overview](https://docs.unity3d.com/Manual/VROverview.html)\
[VR Devices](https://docs.unity3d.com/Manual/VRDevices.html)\
[Scripting](https://docs.unity3d.com/Manual/ScriptingSection.html)\
[Open Source Repositories](https://docs.unity3d.com/Manual/OpenSourceRepositories.html)

## **Week 05**

\
**Platform Agnostic**\
**View Unity tutorial here:** <https://vimeo.com/363607099>\
**And view VR demo here:** <https://vimeo.com/363608607>

**HTC Vive Input Utility**\
**View Unity tutorial here:** <https://vimeo.com/363612387>\
**And view VR demo here:** <https://vimeo.com/363612544>

**Steam VR Plugin**\
**View Unity tutorial here:** <https://vimeo.com/363616615>\
**And view VR demo here:** <https://vimeo.com/363621707>

## **Week 04**

\
**Maya Essential Training:** <https://www.linkedin.com/learning/maya-2016-essential-training/welcome?u=2131553> \
**Maya Lesson 06 : humanoid tutorial with Maya Quick Rig:** <https://vimeo.com/363668885> \
**Maya Lesson 07 : importing objects and manipulating them: (part 01)** <https://vimeo.com/363676635> **and here (part 02)** <https://vimeo.com/363677595>

## **Week 03**

\
**Unity Intro:** <https://vimeo.com/362086710>

​
