What is OneJS?
OneJS is a Scripting Engine and UI solution specifically designed for Unity. It is lightweight, performant, has first-class Typescript support, and works everywhere. It allows you to directly use things like Preact and Tailwind with UI Toolkit.
It's available on the Unity Asset Store.
- Use Typescript & JSX for UI Development in Unity
- Fast Iteration speed with Live Reload (even across multiple devices)
- Awesome Performance due to 1-to-1 interop between Preact and UI Toolkit
- Runtime CSS Load CSS strings dynamically at runtime!
- Tailwind! Utility Classes, Arbitrary Values, and Responsive Breakpoints are supported.
- TS Definitions for tons of UnityEngine and UIElements types. We also provide an C#-to-TS Type Converter that will make your Typing life much easier.
- Works Everywhere (Mac, Windows, iOS, Android, Editor, Standalone, Mono, Il2cpp)
- Built-in Security when you need it. Should you choose to give your players scripting capabilities, you can set many security settings such as memory limit, call depth, script timeout, among many others, courtesy of Jint.
Note From the Dev
We are a small Boston-based game studio. While working on our upcoming game, we developed a scripting engine that enables the use of Typescript, JSX, and (P)React within Unity. Believing it can bring value to all Unity developers, we published it on the Unity Asset Store. It is also part of our efforts to fund our current game. So THANK YOU to everybody who purchased OneJS. We really appreciate the support!
UI development in Unity (or any Game Engine) has been historically a challenging endeavor. The Unity team working on UI Toolkit has done a phenomenal job at providing a solid UI foundation that is rooted in the web tech space. However, C# is an odd fit in this case. Slow iteration speed and awkward data-binding can turn web developers off. So it seems the strength of declarative UI programming can only be fully unlocked by a dynamic language. OneJS aims to fill that gap and bring more freedom to UI Development in Unity.