Skip to content

eteeXR/etee-Unity-API

Repository files navigation


Logo Dark Logo Light

Official Unity API for the eteeControllers.
Report Bug · Request Feature


Tag for latest stable release Compatible Platforms License

Check our Website! Support e-mail Follow us in Twitter!

Table of Contents
  1. About The Project
  2. Scenes
  3. Getting Started
  4. Further Information
  5. Contributing
  6. License
  7. Authors
  8. Contact

About the Project

The etee Unity API allows developers to easily create applications that interface with the etee finger-tracking controllers. It enables seamless device data reading and communication, streamlining the process of integrating the controllers into your software development workflow.


Demo of an interaction between the devices and the eteeHandsVisualisation scene.

The package contains:

  • Prefab & Source Code - etee Unity API
  • Scenes - one for basic device communication and one for hand movement visualisation
  • Assets - required for basic set-up

The API contains four main device communication scripts:

  • CsharpSerial.cs - Retrieves device and port statuses. It also initialises device connection and data streaming commands.
  • EteeDevice.cs - Gathers values from the device data packet.
  • EteeAPI.cs - Call and retrieves values from the API
  • AHRS.cs - Processes rotation information

(back to top)

Scenes

There are two main example scenes in the package:

  • eteeSerialCommunication
  • eteeHandsVisualisation

Scene 1: eteeSerialCommunication

This scene contains the etee Unity API prefab for developers to interact with.

When clicking on either LeftDevice or RightDevice gameobjects, you will be able to quickly see the numerical sensor values for the device in the Inspector panel.


Editor view of the eteeSerialComm scene.

Scene 2: eteeHandsVisualisation

This scene contains a visual rendition of the user's hands that mimic their gestures using the etee controller.

Included in this scene are the following:

One pair of hand prefabs:

  • 3D hand model
  • Animator with hand open/closed states
  • Hand controller script (retrieves API values for animation purposes)

Simple Gesture UI to visualise which gesture is being performed on each hand:

  • Gesture Icons
  • Gesture UI script (retrieves API gesture states and controls the icons shown)


Editor view of the eteeHandsVisualisation scene.

(back to top)

Getting Started

Option 1: Clone the repository

  1. Open a command prompt.
  2. Change the current working directory to the location where you want the cloned directory.
  3. Type git clone, and then paste the URL for the Github repository.
    git clone https://github.com/eteeXR/etee-Unity-API.git

Option 2: (Coming soon) Install from the Unity Asset Store

Import Package

Begin by importing the etee Unity API package into your Unity project.

To do this, follow the below steps:

  1. Go to Window > Package Manager, and select My Assets.
  2. Find the etee Unity API package, and click Import.
  3. Make sure everything is selected when importing to avoid dependency issues within the API.


etee Unity API package.

Setup Project Settings

With the package imported make sure you switch to the correct API Compatibility Level:

  1. Go to Edit > Project Settings > Player > Other Settings > API Compatibility Level.
  2. Switch to the correct .NET compatibility version. If you are developing in Unity version 2021 select .NET Framework. If you are using an older version of Unity you should use .NET 4.x instead.


Ensuring .NET framework compatibility.

Note: To see how to use the API in your custom project, check the Usage section.

(back to top)

Further Information

For more details regarding this API, check the documentation below:

  • Hardware Setup: How to set up your physical devices.
  • Usage: How to use the API in your custom project.
  • Input Data: List of input data that can be retrieved from the devices.

(back to top)

Contributing

How to Contribute

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue to describe your suggestion or report a bug.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Semantic Type Prefixes

To help us and the community easily identify the nature of your commit or issue, use semantic type prefixes to precede your message / title.

Some common type prefixes include:

  • feat: A new feature for the user, not a new feature for a build script.
  • fix: Bug fix for the user, not a fix for a build scripts.
  • enhanc: Enhancement or improvement to existing feature.
  • perf: Code improved in terms of processing performance.
  • refactor: Refactoring production code (e.g. renaming a variable).
  • chore: Changes to the build process or auxiliary tools and libraries.
  • docs: Changes to documentation.
  • style: Formatting, missing semicolons, etc. No code change.
  • vendor: Update version for dependencies and other packages.
  • test: Adding missing tests or refactoring tests. No production code change.

Format: <type>(<scope>): <subject>, where < scope > is optional.

For example, your commit message header might look like this:

feat(imu): Implemented Euler angles estimation from quaternion

For more references and guides on semantic code messages, see:

(back to top)

License

Distributed under the Apache 2.0 License. See LICENSE.txt for more information.

(back to top)

Authors

This repository was created by the TG0 team, for the etee brand.

Code and documentation authors include:

  • Samuel Parsons (API development, documentation and releases)
  • Pilar Zhang Qiu (API development, documentation and releases)

(back to top)

Contact

For any queries or reports about the API, please use the Issues tab in this repository. When possible, use an identifier to help us describe your query, report or request. See more at: Semantic Type Prefixes.

For further support or queries, you can contact us:

(back to top)