ReeseUnityDemos
Unity packages and demos—emphasizing ECS, jobs and the Burst compiler—by me, Reese.
Packages
This project is a UPM package monorepo that supports the included demos, featuring:
- Nav - DOTS navigation with auto-jumping agents and movable surfaces.
- Spawning - Generic DOTS runtime spawning for any combination of prefab, components, and buffers (not compatible with IL2CPP).
- Randomization -
Unity.Mathematics.Random
number generators in jobs, including Burst-capable ones.
All of my packages are available on OpenUPM.
Demos
Here's how my articles on reeseschultz.com relate to samples in this project:
DOTS Navigation with Auto-Jumping Agents and Movable Surfaces
⇒ Assets/Scenes/Nav/NavTerrainDemo.unity
.
⇒ Assets/Scenes/Nav/NavMovingJumpDemo.unity
.
⇒ Assets/Scenes/Nav/NavPerformanceDemo.unity
.
⇒ Assets/Scenes/Nav/NavPointAndClickDemo.unity
.
Pointing and Clicking with Unity ECS
⇒ Assets/Scenes/PointAndClickDemo.unity
.
Projectile Motion with Unity DOTS
⇒ Assets/Scenes/ProjectileDemo.unity
Random Number Generation with Unity DOTS
⇒ Assets/Scenes/ProjectileDemo.unity
⇒ Assets/Scenes/SpawnDemo.unity
⇒ Assets/Scenes/Nav/NavPerformanceDemo.unity
Selectively Running Systems in Scenes with Unity ECS
⇒ Assets/Scenes/ProjectileDemo.unity
Spawning Prefabs with Unity ECS
⇒ Assets/Scenes/SpawnDemo.unity
IL2CPP
The demos may use the spawning package, which isn't compatible with IL2CPP. Keep that in mind when building and running scenes.
Linux & You
Linux users may need to do some extra work to get the project and/or packages up and running.
Mono Setup
Install Mono by following these directions.
Burst Prerequisite Setup
Avoid sandboxing Unity Hub and Unity with Flatpak or Snap, otherwise libdl.so
may be inaccessible to the editor.
Also, on Ubuntu, you may need to manually install gcc-multilib
and libncurses5
with:
sudo apt install gcc-multilib libncurses5
IL2CPP Setup
If, despite prior warning, you still want to use IL2CPP, note that you need to install clang
on Ubuntu via:
sudo apt install clang
Contributing
Find a problem, or have an improvement in mind? Great. Go ahead and submit a pull request. Note that the maintainer offers no assurance he will respond to you, fix bugs or add features on your behalf in a timely fashion, if ever. All that said, GitHub Issues is fine for constructive discussion.
By submitting a pull request, you agree to license your work under this project's MIT license.