0. How do I gain access to the private github repo?
Use the
/collab
cmd in our
Discord server. You will need to provide your Github username and the Order/Invoice number from the Asset Store.
After that, you'll gain the @Collaborator
role in our Discord server and access to the private Github repo. The repo contains early features and fixes not yet available on the Asset Store
1. What is OneJS and how does it work with Unity?
OneJS is a scripting engine and UI solution designed specifically for Unity. It allows you to use TypeScript, React-style components, and web technologies like ESBuild and Tailwind to build user interfaces in Unity. OneJS works directly with Unity's UI Toolkit, providing a bridge between web development paradigms and Unity's native UIs.
2. What are the main benefits of using OneJS over traditional Unity UI development?
The key benefits include:
- Faster iteration speed with live reloading of UI changes
- Familiar tooling for web developers (TypeScript, (P)React, Tailwind, ESBuild etc.)
- More flexible and maintainable UI code using component-based architecture
- Ability to future-proof using UI Toolkit which will replace Unity UI eventually
- Ability to use TypeScript and JSX to offer modding support for your community
3. Does OneJS work on all Unity platforms?
OneJS has been tested and works on Windows, Mac, iOS, and Android. WebGL support is planned for the future.
4. How does OneJS handle performance, especially on mobile devices?
OneJS is designed to be lightweight and performant. Internally, it uses
PuerTS which provides multiple backend options (QuickJS, V8, NodeJS) to balance between performance and build size. For optimal performance, especially on mobile, it's recommended to use the V8 backend and leverage PuerTS's static wrappers and blittable optimizations to minimize garbage collection.
5. Can I use npm packages with OneJS?
Yes, starting with OneJS V2 you can use npm packages. When using the NodeJS backend, you will be able to use any package that's meant for the node environment. However, do note that UI Toolkit, which is what OneJS uses as the Dom layer, is not a fullfledged browser environment, so some [Dom|Browser]-dependent packages may not work as expected. See our
Limitations page for more info.
6. Is OneJS suitable for complex UI systems in large-scale games?
Yes, OneJS is designed to scale well for complex UI systems. (P)React's component-based architecture allows for building modular and maintainable UI code. The ability to use TypeScript also helps manage complexity in larger projects.
7. How does styling work in OneJS?
OneJS supports multiple styling approaches:
Tailwind for utility-first styling
Styled-components and Emotion-like APIs for CSS-in-JS
Runtime USS (Unity Style Sheets) for dynamic styling
Static USS files
This flexibility allows developers to choose the styling approach that best fits their project and team preferences.
8. What kind of learning curve can I expect when adopting OneJS?
The learning curve will depend on your background. Web developers familiar with React and TypeScript will find OneJS relatively easy to pick up. Unity developers with little web experience may need some time to adjust to the component-based architecture and TypeScript.
OneJS provides comprehensive documentation and examples to help smooth the learning process.
9. Is OneJS actively maintained and supported?
Yes, OneJS is actively maintained and supported. We regularly release updates, bug fixes, and new features. There's also an active community on Discord where users can get help, share tips, and showcase their work.
10. Will OneJS ever be open-sourced?
Yes, we have a dedicated roadmap page for this.
11. What's the next big feature after V2?
There are lots! You can also refer to our roadmap for this one.