t1k:unity:dots-ai:behavior-designer-pro
| Field | Value |
|---|---|
| Module | dots-ai |
| Version | 2.1.7 |
| Effort | high |
| Tools | — |
Keywords: AI, behavior designer, behavior tree
How to invoke
Section titled “How to invoke”/t1k:unity:dots-ai:behavior-designer-proBehavior Designer Pro — DOTS Entity Reference
Section titled “Behavior Designer Pro — DOTS Entity Reference”Skill Purpose
Section titled “Skill Purpose”Reference for Behavior Designer Pro (BDP) — a behavior tree tool for Unity DOTS by Opsive. This skill covers DOTS Entity mode only — Burst-compiled, job-parallel ECS task systems.
Related skills:
dots-ecs(ECS fundamentals) ·dots-jobs-burst(Jobs, Burst) ·dots-rpg(RPG gameplay) ·dots-performance(optimization)
When This Skill Triggers
Section titled “When This Skill Triggers”- Using any
Opsive.BehaviorDesigner.*namespace - Creating ECS entity tasks (
ECSActionTask,ECSConditionalTask) - Working with
EvaluateFlag,TaskComponent,BranchComponentECS components - Entity baking for behavior trees (auto-bootstrap on world creation — BDP 3+)
- Conditional aborts with
IReevaluateResponder - Programmatic tree creation (
TreeLogicNodes,ITreeLogicNode, fluent TreeBuilder) - Performance throttling (EvaluateFlag + AIUpdateTier integration)
- Migrating BDP 2 → BDP 3 (3rd-generic wrapper refactor)
Requirements
Section titled “Requirements”- Unity: 6000.3+ (Unity 6)
- Entities package: 1.4.5+
- BDP package:
com.opsive.behaviordesigner3.0.2 (pinned; see migration guide for upgrade notes) - Platform: All except WebGL (Entities/Burst limitation)
- Assembly:
DOTSBDPasmdef (referencesOpsive.BehaviorDesigner.Runtime,Opsive.Shared.Runtime)
Module Quick Reference
Section titled “Module Quick Reference”| Module | Reference | Coverage |
|---|---|---|
| Concepts | concepts-guide.md | Tree flow, task types, composites, decorators, conditional aborts |
| Entity Tasks | entity-task-guide.md | ECS tasks (6 files each), Burst systems, jobs, flags, reevaluation |
| Entity Baking | entity-baking-guide.md | Baking workflow, spawning, BDP 3 auto-bootstrap |
| Tree Creation | tree-creation-guide.md | Programmatic tree building, TreeBuilder API, BattleDemo archetypes |
| DOTS RPG Integration | dots-rpg-integration-guide.md | 17 BDP tasks, 3-layer architecture, system ordering bridges |
| Performance | performance-throttling-guide.md | EvaluateFlag throttling, AIUpdateTier, scaling strategies |
| Migration | migration-2-to-3-guide.md | BDP version migration recipes (institutional memory) |
Architecture Overview
Section titled “Architecture Overview”BehaviorTreeSystemGroup (SimulationSystemGroup)├── BDPEvaluateFlagThrottleSystem (before group — disables EvaluateFlag for skip-frame entities)├── BeforeTraversalSystemGroup (OrderFirst)│ └── ReevaluateTaskSystemGroup (conditional abort reevaluation)├── InterruptSystemGroup│ └── InterruptTaskSystemGroup├── TraversalSystemGroup│ ├── TraversalTaskSystemGroup (custom task systems — 15 total)│ └── EvaluationSystem (tree traversal)└── EvaluationCleanupSystem (OrderLast — re-enables EvaluateFlag)System Ordering (3-Layer)
Section titled “System Ordering (3-Layer)”Layer 1: PERCEPTION (AISystemGroup) AIUpdateTierSystem → DetectionSystem → AggroSystem ↓ [BDPAfterPerceptionBridge]
Layer 2: BEHAVIOR (BehaviorTreeSystemGroup) BDPEvaluateFlagThrottleSystem → BDP internal → Custom task systems ↓ [BDPBeforeNavigationBridge]
Layer 3: EXECUTION (Navigation + Combat) AgentNavigationBridgeSystem → AutoAttackSystem→ See references/ecs-components-guide.md for the full ECS component table (~600-800B overhead per entity), EvaluateFlag throttle pattern, and task status flow.
Key Namespaces
Section titled “Key Namespaces”using Opsive.BehaviorDesigner.Runtime; // BehaviorTree APIusing Opsive.BehaviorDesigner.Runtime.Tasks; // TaskStatus, ECSActionTask, ECSConditionalTaskusing Opsive.BehaviorDesigner.Runtime.Components; // ECS: TaskComponent, BranchComponent, EvaluateFlagusing Opsive.BehaviorDesigner.Runtime.Groups; // BehaviorTreeSystemGroupusing Opsive.GraphDesigner.Runtime; // ITreeLogicNode, IAuthoringTaskKey Conventions
Section titled “Key Conventions”- To create an ECS task, inherit
ECSActionTask<TSystem, TComponent, TComponentFlag>orECSConditionalTask<TSystem, TComponent, TComponentFlag>with Burst-compiledISystem(BDP 3 — 3rd generic is the per-task flag struct) - Do NOT override the
Flagproperty — BDP 3 base class implements it via the 3rd generic. Override causes CS0108 warning - Each entity task = 4-6 files: Authoring, Component (
IBufferElementData), Flag (IEnableableComponent), System (ISystem), Job (IJobEntity), optional ReevaluateSystem+Flag - To bake behavior trees, place
BehaviorTreeon a prefab in a SubScene — BDP 3 auto-bootstraps the baked-tree system on world creation; no explicit call needed - To create trees programmatically, set
bt.TreeLogicNodes,bt.EventNodes(withStartnode), thenbt.Serialize() - To force system ordering, use empty bridge ISystem structs with
[UpdateAfter]/[UpdateBefore] - All task systems MUST be
[DisableAutoCreation]— BDP manages their lifecycle - All task systems MUST include
EvaluateFlagin their query (BDP template enforces this) -> See references/gotchas-scaling-guide.md for ECS task gotchas and performance scaling table (<100 to 2000+ units).
Reference Files
Section titled “Reference Files”| File | Contents |
|---|---|
| concepts-guide.md | Tree flow, task types, composites, decorators, conditional aborts |
| entity-task-guide.md | ECS tasks (6 files each), Burst systems, jobs, flags, reevaluation |
| entity-baking-guide.md | Baking workflow, spawning, BDP 3 auto-bootstrap |
| tree-creation-guide.md | Programmatic tree building, TreeBuilder API, BattleDemo archetypes |
| dots-rpg-integration-guide.md | 17 BDP tasks, 3-layer architecture, system ordering bridges |
| performance-throttling-guide.md | EvaluateFlag throttling, AIUpdateTier, scaling strategies |
| ecs-components-guide.md | ECS component table, EvaluateFlag throttle, task status flow |
| gotchas-scaling-guide.md | ECS task gotchas, vendor bug workarounds, performance scaling table |
| advanced-guide.md | Advanced BDP patterns and techniques |
| migration-2-to-3-guide.md | BDP version migration recipes (institutional memory) |
| bdp-task-generic-guide.md | BDPTaskData<TPayload> — form-b rationale, exact API, all shipped payload types, MANDATORY [assembly: RegisterGenericComponentType] registration gotcha (runtime Unknown Type on missing entry), Patrol/WaitDuration/Flee examples, 3 use-cases, step-by-step new-task guide, write-back gotcha |