Skip to main content

Interactions - Slide System

The Slide System allows presenters in a HoloMIT session to show and control a slide presentation on a virtual screen. This interaction is designed to be synchronized across all users in the session.

Overview

The core logic for the slide system is located in Assets\Pilots\Common\Interaction\SlidesSystem\, driven primarily by the SlideController.cs script.

Key Features

  • Network Synchronized: Slide transitions are broadcasted across the network using NetworkTrigger components (nextSlideTrigger, backSlideTrigger, startFinishSlideTrigger), ensuring all participants see the same slide simultaneously.
  • Input System Integration: It binds directly to the new Unity Input System via the HoloMITControls asset, listening for specific actions to navigate the presentation (Next, Back, Start/Finish).
  • Material-Based Rendering: Slides are essentially an array of Texture2D images. The controller dynamically updates the _MainTex property of a specific material (SlideMaterial) applied to a virtual screen GameObject.

Setup Requirements

To properly configure the Slide System in a scene, the SlideController requires:

  1. Slides Array: An array of Texture2D objects assigned in the Unity Inspector representing the presentation slides in order.
  2. Screen Object: A GameObject with a MeshRenderer to act as the projection screen.
  3. Slide Material: A material named SlideMaterial must be available in a Resources folder, which the script loads and instantiates at runtime to avoid modifying the base asset.

Usage

The presentation is controlled through the bound input actions:

  • Start/Finish: Toggles the visibility of the screen. When starting, it always resets to the first slide.
  • Next Slide: Advances the slide index, clamping at the last slide.
  • Back Slide: Decreases the slide index, clamping at the first slide.

Inspector view of a properly configured SlideController.