JMRSDK Development
v4.38
v4.38
  • Jio Mixed Reality SDK Documentation
    • Changelog 4.38
      • Upgrade Guide 4.38
    • Application Requirements
  • Device Information
    • JioGlass
    • JioDive
  • Supported Smartphones
  • Controller Specifications
    • Physical Controllers
    • External Gamepad
    • Virtual Controller / Virtual Keyboard for JioGlass
  • Getting Started
    • Development Platform
    • Setting Up Jio Mixed Reality Project in Unity
    • URP Support
      • Setting Up Your Project With URP
      • Reverting Back to Built-In Render Pipeline
  • JMRSDK
    • JMRSDK Content
    • JMRMixedReality Prefab
    • System Dock
    • JMRRig
      • Local Rig
      • Setting Homepage (Quit functionality)
      • Recenter Application on Resume
  • Develop
    • Editor Emulator
    • JioGlass Controller Interactions
    • Cameras
    • Tesseract Mixed Reality UI Toolkits
    • Examples
    • Video Tutorials
  • Interaction
    • Gaze Interaction
      • Gaze and Click
      • Gaze and Dwell
    • Interaction
      • Pointer Manager
        • Examples
      • Active Input Source
    • Interfaces
      • IFocusable
      • ISelectHandler
      • ISelectClickHandler
      • IBackHandler
      • IHomeHandler
      • IMenuHandler
      • IFn1Handler
      • IFn2Handler
      • ITouchHandler
      • ISwipeHandler
      • IVoiceHandler
      • IManipulationHandler
    • Controller Input Actions
      • Touchpad - Touch
      • Touchpad - Swipe
      • Source Buttons
      • Manipulation
    • Actions
    • Device State
      • JioDive Device State
      • JioGlass Device State
      • Controller Device State
  • Voice
    • Voice
      • Speech Events
      • Speech Result
      • Speech Error
      • Speech Session End
      • Speech Cancel
    • Listening
  • Tracking
    • Tracking
      • Coordinate System
    • Tracking Framework
      • TrackerManager Actions
        • Get Head Position
        • Get Head Rotation
        • Get Head Transform
      • TrackerManager Methods
        • Get Head Position
        • Get Head Rotation
        • Get Head Transform
    • Recenter
  • Building and Testing
    • Building to Target Device
      • Merging AndroidManifest
      • Performance Optimization
      • App optimization
    • Running your application
      • JioImmerse App For Jio Mixed Reality (JMR) Devices
      • Running the application on Prism (Holoboard)
    • IPD Calibration
  • Publish
    • Branding Guidelines
    • Licensing Journey In Android JioImmerse
    • Signing your App
    • Publishing to Google Play Store
      • Play Store Upload Journey
    • Publishing to JioImmerse Developer Console
    • Publishing to Apple Store
    • Licensing Journey in iOS JioImmerse
    • iOS Deep linking
  • Capturing and Recording
    • Capture Videos and Screenshots
      • Capturing Screenshot/Videos using scrcpy
      • Capturing Screenshot/Videos using Vysor
  • Troubleshooting
    • FAQs - Develop
    • FAQs - Building to device
      • Gradle
      • FAQs - iOS
    • FAQs - Running and Publishing
    • Laser Point Not Visible
Powered by GitBook
On this page
  • Global Actions
  • Global Listener
  • Local Action
  • Obtaining Interaction Ray
  • Obtaining Head Orientation
  • Obtaining Controller Orientation
  1. Interaction

Actions

Global Actions

  • Back button - Single click button for navigation in the application to previous / pause state hierarchy. You are expected to implement the IBackHandler Interface and manage the application flow within your application yourself. Maps to IBackHandler.

  • Home button - Single click button that takes the user back to the home screen.

  • Menu button - On pressing the home button twice - Double press the button that opens System Menu.

  • Voice button - Long pressing back button – Enables voice interaction.

  • Recentre - Long press button to recentre head and controller orientation during an application.

Global Listener

To make these interactions Global to trigger them from anywhere, add the following line to the Start function of the InterfaceExample script.

JMRInputManager.Instance.AddGlobalListener(gameObject);

Local Action

  • Select - Single click button for carrying out any app-related interaction.

  • Touch

  • Swipe

Obtaining Interaction Ray

You can get the Interaction Ray from the JMRPointerManager class as follows

JMRPointerManager.Instance.GetCurrentRay();

using UnityEngine;
using JMRSDK.InputModule;
 
public class JMRDemoRayExample : MonoBehaviour
{
    public void Update()
    {
        Ray ray = JMRPointerManager.Instance.GetCurrentRay();
    }
}

Obtaining Head Orientation

You can get the Head Orientation from the JMRTrackerManager class as follows

JMRTrackerManager.Instance.GetHeadTransform();

using UnityEngine;
using JMRSDK;
 
public class JMRDemoHeadExample : MonoBehaviour
{
     public void Update()
     {
          Transform head = JMRTrackerManager.Instance.GetHeadTransform();
     }
}

Obtaining Controller Orientation

You can get the Controller Orientation from the JMRInteractionManager class as follows

IInputSource source = JMRInteractionManager.Instance.GetCurrentSource();
Quaternion controllerOrientation;
Source.TryGetPointerRotation(out controllerOrientation);
using UnityEngine;
using JMRSDK.InputModule;
 
public class JMRDemoHeadExample : MonoBehaviour
{
     public void Update()
     {
          IInputSource source = JMRInteractionManager.Instance.GetCurrentSource();
          Quaternion controllerOrientation;
          source.TryGetPointerRotation(out controllerOrientation);
     }
}
PreviousManipulationNextDevice State

Last updated 1 year ago