Skip to content
Bit Quirky Behavior Trees and
State Machines

Search documentation

All topics and APIs

Close returns focus to Search.

What are you looking for?

Try a common topic or enter a complete API identifier.

Browse the reference instead

Esc closes · Tab reaches results · Enter opens the focused link

v0.6.0
Menu

Compatibility

The Unity releases this package supports, the versions it declares, what ships inside it, and which powers differ between the GameObject and entity hosts.

Two numbers decide whether this package installs cleanly: your Unity version and the versions in the package manifest. Both are short lists.

Unity 6.5 or later, official releases only. The manifest sets 6000.5 as the minimum, and alpha or beta builds are outside the supported set. A later official 6.5 release is fine.

Screenshots and captures on this site record the exact editor version they were taken on, so you can tell a product change from a Unity change.

Package io.bitquirky.behavior, version 0.6.0, depends on:

Dependency Declared version
io.bitquirky.graph 0.2.62
Burst 1.8.29
Collections 6.5.0
Mathematics 1.4.0
Entities 6.5.0

Unity resolves all five for you. Addressables stays outside that list: the optional BitQuirky.Behavior.Addressables assembly compiles when the Addressables package is present, and the rest of the product works without it. See Addressables and builds.

That table is a dependency contract, and it is the set we test against. Render pipelines, target platforms, Unity patch releases, and third-party packages are yours to verify in your own project, so keep the installed manifest beside any support ticket.

The package ships as Unity assemblies with the full C# source of its runtime and its editor, so you can read the code that decides what your graph does. Seeing the source grants no extra rights: LICENSE.md inside the package is the authority on use, copying, modification, and distribution.

Install and update through Window > Package Manager or the project manifest your team already uses. Copying individual files into Assets/ separates the editor, the runtime, the Graph dependency, the generated code, and the build validators, which ship and move as one unit. Install has the full procedure and Upgrading has the version change.

Both hosts run the same execution core and the same graphs you author in the same editor. What differs is composition and how much the editor can do to a running instance.

Capability GameObject Entity
Runtime owner A Behavior Agent component A BehaviorEntityRuntime for a World you supply
Scheduling Update, FixedUpdate, or your own TickOnce call Your system calls the graph tick
Managed values Supported through managed composition Unsupported in entity blackboard storage
Unity object references Supported where the binding contract permits Unsupported in entity blackboard storage
Member invocation A generated managed provider A generated entity binding set and scheduler
Live selection The exact GameObject or component The exact entity row in Unity’s Hierarchy
Pause and Step One ordinarily scheduled follower Unity’s Play mode, globally
Breakpoints Per follower, on entered nodes Unsupported; see what it does not do yet
Live value edits Eligible surfaced properties and fields Observing only

One project can run both. Horde Survival runs entity graphs for its crowd; the other three samples run GameObject graphs. One graph instance has exactly one host, checked before it runs, which Runtime explains.

Entity blackboard storage holds unmanaged data, which rules out managed text, your own classes, Unity object references, interfaces, and dictionaries. Entity variables lists what a value shape has to satisfy, and entity bindings covers the target modes that path offers.

The supported surface is wide: exact overloads, optional and defaulted parameters, in, ref, out, parameter arrays, closed generic methods, C# events, readable UnityEvents, fields, properties, methods, and the supported collection shapes. Bindings teaches all of it.

Four value shapes are refused on either host: an open generic type, a ref struct, such as Span<T>, a delegate, a pointer. So is a managed constant other than a string, and so is anything the chosen host cannot represent exactly. A non-public member binds only when that exact declaration carries [BehaviorMember], and every runtime call is generated, so nothing is rediscovered for you after a signature changes.

Full-size image