Overview | Key Features | Videos | Documentation | Samples | Add Ons | Support

Doc Home > Task Attributes

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

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:

[HelpURL("http://www.opsive.com/assets/BehaviorDesigner/documentation.php?id=27")]
public class Parallel : Composite
{

The HelpURL attribute takes one parameter which is the link to the webpage.

In addition to the HelpURL, a task can have the TaskIcon attribute:

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

Task icons are shown within the behavior tree 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".

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 may be nested by separating the category name with a slash:

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

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:

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.


<- Referencing Scene Objects
Third Party Integrations ->