magicleap / MagicLeapXRKeyboard

A keyboard that can be used in any project that supports Unity's XR Interaction Toolkit.
Other
8 stars 1 forks source link

Magic Leap XR Keyboard

A keyboard that can be used in any project that supports Unity's XR Interaction Toolkit. Demo scene can be found in Assets/MagicLeap/Runtime/KeyboardExample/Scenes/XRKeyboardExample.unity

How to import

Add the following git url to the Unity Package Manager: https://github.com/magicleap/MagicLeapXRKeyboard.git?path=/Packages/MagicLeapXRKeyboard

Scene Setup

To have the same interactions as in the example scene, make the following changes:

  1. Select the Game Controller GameObject from the XR Rig
  2. Disable Force Grab from the XR Ray Interactor
  3. In the same component, enable Keep Selected Target Valid

Standard Layouts

Image of XR Keyboard Layout Image of custom XR Keyboard Layout Learn how to create cusom layouts here

Getting Started

Make sure to set the input option in Player Settings to new.

Keyboard

Set Up Input Fields

Structure

The Keyboard prefab is structured in the following way:

Editing Layout

To edit the layout:

  1. Create or navigate to an existing Keyboard Layout.
  2. Edit the Keyboard Layout Data inside of the Keyboard Builder component.
  3. Press Regenerate Keyboard to update the keyboard layout in the scene.
  4. When you are finished, modify the Layout ID and description.
  5. Press Write New Json .to save the data to the Streaming Assets folder. Note: to toggle between Panels with a key press, assign the key's keycode as the Panel ID

Editing Visuals

  1. Navigate to an existing Keyboard Layout.
  2. Modify the Key prefab in the Keyboard Builder component.
  3. Press Regenerate Keyboard to update the keyboard layout in the scene.

Unicode and Special Characters

Magic Leap XR Keyboard uses the following fonts to support unicode characters: Font Link
Material Symbols https://github.com/google/material-design-icons
Quivira http://www.quivira-font.com/characters.php

Shift

The shift label is appended with _NEUTRAL _SHIFT and _CAPS at runtime depending on the shift state. A key with the label SHIFT will use the following unicodes (they can be changed in Packages/Magic Leap XR Keyboard/Runtime/Scripts/Keyboard/DataModels/KeyboardCollections.cs) Label Name Value
SHIFT_NEUTRAL \ue5f2
SHIFT_SHIFT \uf7ae
SHIFT_CAPS \ue318
SHIFT \ue5f2

Other Special Labels

There are also other special labels to make it easier to distinguish in the editor Label Name Value
NUMBERPAD \uf045
BACKSPACE \ue14a
SPACE
RETURN \ue31b

Keycodes

Special Keycodes also exist Label Name Value
BACKSPACE \u0008
SPACE
RETURN \n

Disclaimers

This project is based on UltraLeap's XR Keyboard which is licensed under Apache 2.0 This project is licensed under the Magic Leap Developer License