Giter Club home page Giter Club logo

headlessoverlaytoolkit's Introduction

This is the master branch for the Headless Overlay Toolkit project.

This is a stripped down version of the SteamVR Unity Plugin with a custom Overlay script that allows for a number of things not built into the default Overlay script. For instance, this Overlay script allows drawing multiple Overlays at once, as well as placing Overlays into the world.

Demos:

Note that these demos were taken during development, and do not necessarily represent the current state of the branch.

Features:

  • Draw Overlays, regardless of the current VR application.
  • Easily attach Overlays to the Screen, a Controller, or drop one in the World.
  • Easily snap Controller attached Overlays to a set "Base Position".
  • Offset Overlays positionally and rotationally.
  • Draw Multiple Overlays Simultaneously (only one Overlay can be 'High Quality').
  • Custom Inspector with Undo support.
  • Basic Gaze Detection and Animation support (Fade In/Out or Scale Up/Down on Gaze).

Known Issues:

  • SteamVR_ControllerManager.cs doesn't correctly auto-identify controllers for me, so I wrote my own manager, HOTK_TrackedDeviceManager.cs. My Device Manager is super pre-alpha but should correctly identify both Controllers as long as at least one of them is assigned to either the left or right hand, and they are both connected. If neither Controller is assigned to a hand, they are assigned on a first come first serve basis. If only one Controller is connected, and it isn't already assigned, it will be assigned to the right hand.

Additional Notes:

  • When attaching Overlays to controllers, the offset is reoriented to match the Base Position's orientation. X+ should always move the Overlay to the Right, Y+ should always move Up, and Z+ should always move Forward, relative to the Overlay.
  • The Custom Inspector has custom collapse elements. You can change the default "collapse status" by messing with the defaults for ShowSettingsAppearance, ShowSettingsInput, and ShowSettingsAttachment at the top of HOTK_Overlay.cs.
  • Only one Overlay can be 'High Quality' at a time. An Overlay must be 'High Quality' to display Curved or with Anti-Aliasing as per the OpenVR API. 'High Quality' Overlays skip the Compositor and are drawn directly to the display. If you enable multiple HQ Overlays, any additional ones will have HQ toggled off and you'll receive a warning.

If you want to run this headless:

Check out the documentation here on how to run Unity headless. There are a few different ways to do this.

The basic steps to create a shortcut on Windows that launches headless are:

  • Build your Application
  • Create a Shortcut to your Application
  • Right Click the Shortcut > Properties
  • Put " -batchmode" at the end of the text in the 'Target' box
  • Launch your Shortcut, and your Application should launch hidden
  • You can crash your Application through the Task Manager, but be sure to add a graceful way to quit in the future :)

headlessoverlaytoolkit's People

Contributors

hotrian avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.