Classes and Components Overview
When you open your project based on the VR Sample for the first time and see a lot of different classes, you might get confused a bit. But let's take a quick look at each of them to see what they actually do and how they are connected.
VRInteractable Class#
This is a base class for all objects that you can interact with. It defines a basic set of interactions, in other words: here you define what can a user do with your object. You can add your own type of interaction here.
The following component classes are inherited from the VRInteractable:
VRPlayer Class#
This is a base class for all players. It contains declaration of baseline controls, common basic player operations, callback management etc.
The following component classes are inherited from the VRPlayer:
VRPlayerPC | This component implements a player with standard PC input devices (keyboard + mouse or Xbox360 controller) for VR emulation and contains all related settings and methods. |
---|---|
VRPlayerVR | This is a base class implementing common functionality for supported VR devices and contains their common parameters. The UltraleapHandController class is inherited from VRPlayerVR and available when the Ultraleap plugin is loaded. |
VRPlayerSpawner Class#
This class registers all VRPlayer components in the Component System. It checks that VR is initialized and spawns the VRPlayerVR.
MenuBaseGUI Class#
This is a base class for all graphic user interfaces (GUI).
The following component classes are inherited from the MenuBaseGUI:
Framework#
Framework includes the Component System which implements the core functionality of components and a set of utility classes and functions used for playing sounds, auxiliary math and 3d math functions, callback system implementation.
Triggers Class#
Triggers is a framework class used to mark room obstacles for the VR Player (e.g. room walls, objects, etc.) and give a warning if there is an obstacle on the way (as the player gets closer to an obstacle, controllers' vibration becomes more intense).
You can simply create primitives for walls and objects in your room and add them as children to the node dummy named Obstacles, which is a child of the VR dummy node (see the hierarchy in the Editor below).
All children of the Obstacles node will be automatically switched to invisible mode and will be used only to inform the player and prevent collisions with objects in the real room.