Unity 内置了很多中括号[]形式的特性,Behavior Designer 也内置了 5 个特性:

  • HelpURL
  • TaskIcon
  • TaskGategory
  • TaskDescription
  • LinkedTask

    01 HelpURL

    Task 的 Inspector 窗口的右上角有个文档按钮,如图:
    image.png
    点击文档按钮,会进入帮助页面。使用 HelpURL 特性,我们可以为自己写的 task 配置帮助页面,如下:
  1. [HelpURL("http://www.example.com")]
  2. public class MyTask : Action
  3. {

02 TaskIcon

行为树视图中,每个 task 都有个 Icon,如图:
image.png
使用 TaskIcon 特性,我们可以为自己写的 task 配置 Icon,如下:

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

03 TaskGategory

当 Tasks 越来越多时,就需要通过分类来管理。如下:

  1. [TaskCategory("Common")]
  2. public class Seek : Action
  3. {

上面的代码中,我们使用 TaskCategory 特性,将 Seek 分配到 Common 类中。如下:
image.png
分类名支持通过“/”字符支持文件夹嵌套,如下:

  1. [TaskCategory("RTS/Harvester")]
  2. public class HarvestGold : Action
  3. {

04 TaskDescription

除了在 Inspector 窗口中为 Task 添加说明,我们还可以为相同的 Task 类添加说明,如下:

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

选中 Task 时,该类的说明将出现在行为树视图的左下角:
image.png

05 LinkedTask

通过共享变量,多个 tasks 可以共享同一个变量。有时候我们还需要共享 task。如下:

  1. [LinkedTask]
  2. public TaskGuard[] linkedTaskGuards = null;

使用 LinkedTask 标记后,数组中的所有 TaskGuards 将共享同一个 TaskGuard。