---
title: "Behaviour Trees"
content_type: course
url: "https://learn.unity.com/course/behaviour-trees?language=en"
language: en
difficulty: intermediate
duration_minutes: 140
unity_version:
  - "2021.3"
supported_unity_versions:
  - name: "2021.3"
    url: "https://learn.unity.com/course/behaviour-trees.md?language=en&version=2021.3"
  - name: "2020.2"
    url: "https://learn.unity.com/course/behaviour-trees.md?language=en&version=2020.2"
last_updated: "2026-08-04T14:20:39.000Z"
---

# Behaviour Trees

In this project you will learn about the fundamental concepts used in the creation of Behaviour Trees. You will also take this knowledge and apply it in Unity by building a simple simulation scenario where a behaviour tree is used to define action sequences of a thief stealing a diamond from a gallery.

## Contents

- [Introducing Behaviour Trees](https://learn.unity.com/course/behaviour-trees/tutorial/introducing-behaviour-trees?language=en&version=2021.3) ([md](https://learn.unity.com/course/behaviour-trees/tutorial/introducing-behaviour-trees.md?language=en&version=2021.3)) — Study the structure of behavior trees and the key elements used to build them.
- [Nodes](https://learn.unity.com/course/behaviour-trees/tutorial/nodes-jxw?language=en&version=2021.3) ([md](https://learn.unity.com/course/behaviour-trees/tutorial/nodes-jxw.md?language=en&version=2021.3)) — Write the initial class for a behavior tree system that will support most of the technique’s functionality.
- [Tree Printing](https://learn.unity.com/course/behaviour-trees/tutorial/tree-printing?language=en&version=2021.3) ([md](https://learn.unity.com/course/behaviour-trees/tutorial/tree-printing.md?language=en&version=2021.3)) — Learn to write C# code that traverses a behaviour tree and prints its structure for inspection.
- [Leaf and Action Nodes](https://learn.unity.com/course/behaviour-trees/tutorial/leaf-and-action-nodes?language=en&version=2021.3) ([md](https://learn.unity.com/course/behaviour-trees/tutorial/leaf-and-action-nodes.md?language=en&version=2021.3)) — In this unit, you begin coding leaf nodes to drive behavior and move a NavMesh Agent character.
- [NavMesh Movement](https://learn.unity.com/course/behaviour-trees/tutorial/navmesh-movement?language=en&version=2021.3) ([md](https://learn.unity.com/course/behaviour-trees/tutorial/navmesh-movement.md?language=en&version=2021.3)) — Create a reusable method to move an agent on a NavMesh and reduce repetitive navigation code.
- [Sequences](https://learn.unity.com/course/behaviour-trees/tutorial/sequences?language=en&version=2021.3) ([md](https://learn.unity.com/course/behaviour-trees/tutorial/sequences.md?language=en&version=2021.3)) — Learn how to build the logic required to implement a sequence node in your project.
- [Selectors](https://learn.unity.com/course/behaviour-trees/tutorial/selectors?language=en&version=2021.3) ([md](https://learn.unity.com/course/behaviour-trees/tutorial/selectors.md?language=en&version=2021.3)) — Learn step by step how to build a selector node and add it to your behavior tree.
- [Extended Action Methods](https://learn.unity.com/course/behaviour-trees/tutorial/extended-action-methods?language=en&version=2021.3) ([md](https://learn.unity.com/course/behaviour-trees/tutorial/extended-action-methods.md?language=en&version=2021.3)) — Learn to connect NavMesh-driven navigation commands with a behavior tree to control in-game agents.
- [Conditions](https://learn.unity.com/course/behaviour-trees/tutorial/conditions?language=en&version=2021.3) ([md](https://learn.unity.com/course/behaviour-trees/tutorial/conditions.md?language=en&version=2021.3)) — Learn to build a condition node that adds branching logic and extra functionality to a sequence.
