Task Attributes

Behavior Designer exposes the following task attributes: HelpURL, TaskIcon, TaskCategory, TaskDescription and LinkedTask.

Help URL

If you open the task inspector panel you will see on the doc icon on the top right. This doc icon allows you to associate a help webpage with a task. You make this association with the HelpURL attribute. The HelpURL attribute takes one parameter which is the link to the webpage.

[HelpURL("http://www.example.com")]
public class MyTask : Action
{

Task Icon

Task icons are shown within the behavior tree using the TaskIcon attribute and are used to help visualize what a task does. Paths are relative to the root project folder. The keyword {SkinColor} will be replaced by the current Unity skin color, “Light” or “Dark”.

[TaskIcon("Assets/Path/To/{SkinColor}Icon.png")]
public class MyTask : Action
{

Task Name

The default task name can be changed with the TaskName attribute. This will change the displayed name when the task is added and also within the task list.

[TaskName("MyCoolTask")]
public class MyTask : Action
{

Task Category

Organization starts to become an issue as you create more and more tasks. For that you can use TaskCategory attribute:

[TaskCategory("Common")]
public class Seek : Action
{

This task will now be categorized under the common category:

Categories can be nested by separating the category name with a slash:

[TaskCategory("RTS/Harvester")]
public class HarvestGold : Action
{

Task Description

The TaskDescription attribute allows you to show your class-level comment within the graph view. For example, the sequence description starts out with:

[TaskDescription("The sequence task is similar to an \"and\" operation. ..."]
public class Sequence : Composite
{

This description will then be shown in the bottom left area of the graph:


Linked Task

Variables are great when you want to share information between tasks. However, you’ll notice that there is no such thing as a “SharedTask”. When you want a group of tasks to share the same tasks use the LinkedTask attribute. As an example, take a look at the task guard task. When you reference one task with the task guard, that same task will reference the original task guard task back. Linking tasks is not necessary, it is more of a convince attribute to make sure the fields have values that are synchronized. Add the following attribute to your field to enable task linking:

[LinkedTask]
public TaskGuard[] linkedTaskGuards = null;

To perform a link within the editor perform the same steps as referencing another task.