Awesome
i5 Toolkit for Unity
This toolkit contains a collection of features which can be reused in Unity projects. It is a foundation for new projects, kickstarting the development with already completed tools.
Modules
The i5 Toolkit provides a series of modules and features that can be used in projects.
<table style="text-align: center; vertical-align: middle"> <tr> <td><a href="https://rwth-acis.github.io/i5-Toolkit-for-Unity/1.9.5/manual/App-Console.html"><img src="Documentation/resources/Logos/AppConsole.svg" alt="App Console" style="width:200px"/><br/>App Console</a></td> <td><a href="https://rwth-acis.github.io/i5-Toolkit-for-Unity/1.9.5/manual/Deep-Linking.html"><img src="Documentation/resources/Logos/DeepLink.svg" alt="Deep Link" style="width:200px"/><br/>Deep Link</a></td> <td><a href="https://rwth-acis.github.io/i5-Toolkit-for-Unity/1.9.5/manual/Experience-API.html"><img src="Documentation/resources/Logos/ExperienceAPI.svg" alt="Experience API" style="width:200px"/><br/>Experience API</a></td> </tr> <tr> <td><a href="https://rwth-acis.github.io/i5-Toolkit-for-Unity/1.9.5/manual/File-Cache.html"><img src="Documentation/resources/Logos/FileCache.svg" alt="File Cache" style="width:200px"/><br/>File Cache</a></td> <td><a href="https://rwth-acis.github.io/i5-Toolkit-for-Unity/1.9.5/manual/Modified-3D-Objects.html"><img src="Documentation/resources/Logos/RoundedCorners.svg" alt="Modified 3D Objects" style="width:200px"/><br/>Modified 3D Models</a></td> <td><a href="https://rwth-acis.github.io/i5-Toolkit-for-Unity/1.9.5/manual/Object-Pool.html"><img src="Documentation/resources/Logos/ObjectPool.svg" alt="Object Pool" style="width:200px"/><br/>Object Pool</a></td> </tr> <tr> <td><a href="https://rwth-acis.github.io/i5-Toolkit-for-Unity/1.9.5/manual/Obj-Importer.html"><img src="Documentation/resources/Logos/ObjImporter.svg" alt="Obj Importer" style="width:200px"/><br/>Obj Importer</a></td> <td><a href="https://rwth-acis.github.io/i5-Toolkit-for-Unity/1.9.5/manual/OpenID-Connect-Client.html"><img src="Documentation/resources/Logos/OpenIDConnectClient.svg" alt="OpenID Connect Client" style="width:200px"/><br/>OpenID Connect Client</a></td> <td><a href="https://rwth-acis.github.io/i5-Toolkit-for-Unity/1.9.5/manual/Procedural-Geometry.html"><img src="Documentation/resources/Logos/ProceduralGeometry.svg" alt="Procedural Geometry" style="width:200px"/><br/>Procedural Geometry</a></td> </tr> <tr> <td><a href="https://rwth-acis.github.io/i5-Toolkit-for-Unity/1.9.5/manual/RocketChat-Client.html"><img src="Documentation/resources/Logos/RocketChatClient.svg" alt="Rocket.Chat Client" style="width:200px"/><br/>Rocket.Chat Client</a></td> <td><a href="https://rwth-acis.github.io/i5-Toolkit-for-Unity/1.9.5/manual/Scene-Documentation.html"><img src="Documentation/resources/Logos/SceneDocumentation.svg" alt="Scene Documentation" style="width:200px"/><br/>Scene Documentation</a></td> <td><a href="https://rwth-acis.github.io/i5-Toolkit-for-Unity/1.9.5/manual/Service-Core.html"><img src="Documentation/resources/Logos/ServiceCore.svg" alt="Service Core" style="width:200px"/><br/>Service Core</a></td> </tr> <tr> <td><a href="https://rwth-acis.github.io/i5-Toolkit-for-Unity/1.9.5/manual/Spawner.html"><img src="Documentation/resources/Logos/Spawner.svg" alt="Spawner" style="width:200px"/><br/>Spawner</a></td> <td><a href="https://rwth-acis.github.io/i5-Toolkit-for-Unity/1.9.5/manual/Verbose-Logging.html"><img src="Documentation/resources/Logos/Verbose-Logging.svg" alt="Verbose Logging" style="width:200px"/><br/>Verbose Logging</a></td> <td><a href="https://rwth-acis.github.io/i5-Toolkit-for-Unity/1.9.5/manual/Version-Tool.html"><img src="Documentation/resources/Logos/Version-Tool.svg" alt="Version Tool" style="width:200px"/><br/>Version Tool</a></td> </tr> </table>Setup
Minimum Unity version: 2019.4.
There are different ways to add the package to a project.
You can follow the step-by-step instructions below or watch the video tutorial with installation instructions.
Alternative 1: Unity Dependency File with OpenUPM (Recommended)
The toolkit can be loaded using Unity's package manager. To do this, add an entry to the dependency file:
-
Open your project's root folder in a file explorer.
-
Navigate to the Packages folder and open the file manifest.json. It contains a list of package dependencies which are loaded into the project.
-
Add a scoped registry definition which tells Unity to look at the given URL for the package.
{ "name": "com.i5.toolkit.core", "url": "https://package.openupm.com", "scopes": [ "com.i5.toolkit.core" ] }
-
To add a specific version of the tool to the dependencies, add the following line inside of the "dependencies" object and replace [version] by the release number, e.g. "1.9.5".
"com.i5.toolkit.core": "[version]",
After that, Unity will automatically download and import the package.
So, after completing these steps you should have a manifest.json file which looks like this:
{
"scopedRegistries": [
{
"name": "com.i5.toolkit.core",
"url": "https://package.openupm.com",
"scopes": [
"com.i5.toolkit.core"
]
},
... some more scoped registries
],
"dependencies": {
"com.i5.toolkit.core": "1.9.5",
... some more packages
}
}
Alternative 2: Unity Dependency File with Git (Recommended)
The toolkit is available as a package for the Unity Package Manager. It can be included in new projects by referencing the git-repository on GitHub in the dependency file of the Unity project:
- Open your project's root folder in a file explorer.
- Navigate to the Packages folder and open the file manifest.json. It contains a list of package dependencies which are loaded into the project.
- To add a specific version of the tool to the dependencies, add the following line inside of the "dependencies" object and replace [version] with "v", followed by the release number, e.g. "v1.9.5".
To receive the latest version, replace [version] with upm.
"com.i5.toolkit.core": "https://github.com/rwth-acis/i5-Toolkit-for-Unity.git#[version]",
After that, Unity will automatically download and import the package.
If you specify "upm" to get the latest version, be aware that the package is not automatically updated. This command just pulls the latest version which is available at that time. To update to the newest current version, remove the package again and re-download it.
Alternative 3: Unity Package Manager UI with Git
The package can be downloaded from a git-repository in the package manager's UI.
- In Unity, go to Window > Package Manger.
- Click on the plus-button in the top left corner of the package manager and select "add".
- Enter https://github.com/rwth-acis/i5-Toolkit-for-Unity.git#[version] into the text field where [version] is replaced with "v", followed by the release number, e.g. "v1.9.5" or upm for the latest version. Confirm the download by clicking on the "add" button.
If you specify "upm" to get the latest version, be aware that the package is not automatically updated. This command just pulls the latest version which is available at that time. To update to the newest current version, remove the package again and re-download it.
Alternative 4: Import using the OpenUPM command line interface
Documentation about the OpenUPM CLI can be found here.
- Intall the command line interface.
- Navigate to your Unity project's folder. This is the folder which also contains folders such as Assets or Packages.
- Enter the command
openupm add com.i5.toolkit.core
.
Alternative 5: Import custom package
Another option is to import the package as a .unitypackage.
- Download the .unitypackage-file which is supplied with the corresponding release on the releases page.
- With your project opened, perform a right-click on the assets browser in Unity. Select "Import Package > Custom Packge" from the context menu.
- Navigate to the path where you downloaded the .unitypackage-file, select it and confirm by clicking the "Open" buttom
- A dialog window opens where you can select which files should be imported. Select everything and click on "Import".
Important for this alternative: If you are updating from an earlier version, it is recommended to delete the existing "i5 Toolkit" folder. After that, import the new package.
Example Scenes
The different modules and features are presented in example scenes which can be found in the GitHub repository. You can use the example scenes as an interactive documentation, an experimentation playground and to test the features.
Unit Tests
The project is tested using Unit tests. Continuous integration using GitHub Actions has been set up to test and deploy new versions of the package.
Related Projects
For Mixed Reality development, also check out the i5 Toolkit for MR. It is an extension package that builds upon the functionality of this package and is optimized for Mixed Reality.
If you are working with non-player characters (NPCs), virtual agents or mixed reality agents, take a look at the Virtual Agents Framework. It provides a foundation for building virtual humans and modeling their behavior in a configurable way.
Disclaimer
This repository is not sponsored by or affiliated with Unity Technologies or its affiliates. "Unity" is a trademark or registered trademark of Unity Technologies or its affiliates in the U.S. and elsewhere.