Unity DOTS packages and samples—featuring ECS, jobs and the Burst compiler—by me, Reese.
This project is a UPM package monorepo that supports my demos, including:
- Nav - DOTS navigation with auto-jumping agents and movable surfaces.
- Spawning - Generic DOTS runtime spawning for any combination of prefab, components, and buffers.
- Randomization -
Unity.Mathematics.Random
number generators in jobs, including Burst-capable ones.
These packages all use ubump to automate their SemVer-bumping needs, including committing, pushing, tagging, changelog generation and subtree splitting so each package can be imported stand-alone with Git.
And why a monorepo? Because juggling multiple Unity projects with different configurations is annoying. Plus, if I have to update one thing, it forces me to consider updating or removing other things. Centralizing configuration—while distributing stand-alone packages—works best for me personally. The alternative would be a sprawling mishmash of disproportionately maintained projects.
Here's how my articles on reeseschultz.com relate to samples in this project:
The DOTS navigation scripts and demos are self-contained so you can use them in your project.
⇒ Assets/Scenes/Nav/NavMovingJumpDemo.unity
.
⇒ Assets/Scenes/Nav/NavPerformanceDemo.unity
.
⇒ Assets/Scenes/Nav/NavPointAndClickDemo.unity
.
⇒ Assets/Scenes/PointAndClickDemo.unity
.
⇒ Assets/Scenes/ProjectileDemo.unity
⇒ Assets/Scenes/ProjectileDemo.unity
⇒ Assets/Scenes/SpawnDemo.unity
⇒ Assets/Scenes/Nav/NavPerformanceDemo.unity
⇒ Assets/Scenes/ProjectileDemo.unity
⇒ Assets/Scenes/SpawnDemo.unity
Linux users may need to do some extra work to get the project and/or packages up and running.
Install Mono by following these directions.
On Ubuntu I couldn't use the Burst compiler until I manually installed gcc-multilib
and libncurses5
with:
sudo apt install gcc-multilib libncurses5
You may have these libraries already, or you could be experiencing a different problem. Be sure to read any error messages the Unity Editor outputs.
By submitting a pull request, you agree to license your work under this project's MIT license.