Unity 内置了很多中括号[]形式的特性,Behavior Designer 也内置了 5 个特性:
- HelpURL
- TaskIcon
- TaskGategory
- TaskDescription
- LinkedTask
01 HelpURL
Task 的 Inspector 窗口的右上角有个文档按钮,如图:
点击文档按钮,会进入帮助页面。使用 HelpURL 特性,我们可以为自己写的 task 配置帮助页面,如下:
[HelpURL("http://www.example.com")]
public class MyTask : Action
{
02 TaskIcon
行为树视图中,每个 task 都有个 Icon,如图:
使用 TaskIcon 特性,我们可以为自己写的 task 配置 Icon,如下:
[TaskIcon("Assets/Path/To/{SkinColor}Icon.png")]
public class MyTask : Action
{
03 TaskGategory
当 Tasks 越来越多时,就需要通过分类来管理。如下:
[TaskCategory("Common")]
public class Seek : Action
{
上面的代码中,我们使用 TaskCategory 特性,将 Seek 分配到 Common 类中。如下:
分类名支持通过“/”字符支持文件夹嵌套,如下:
[TaskCategory("RTS/Harvester")]
public class HarvestGold : Action
{
04 TaskDescription
除了在 Inspector 窗口中为 Task 添加说明,我们还可以为相同的 Task 类添加说明,如下:
[TaskDescription("The sequence task is similar to an \"and\" operation. ..."]
public class Sequence : Composite
{
05 LinkedTask
通过共享变量,多个 tasks 可以共享同一个变量。有时候我们还需要共享 task。如下:
[LinkedTask]
public TaskGuard[] linkedTaskGuards = null;
使用 LinkedTask 标记后,数组中的所有 TaskGuards 将共享同一个 TaskGuard。