共享变量概览


作用域

作用域决定了共享变量对哪些行为树可见。

目前支持 2 个作用域:

  • tree 作用域下,共享变量只对当前行为树可见。
  • scene 作用域下,共享变量对当前场景下的所有行为树可见。

创建共享变量

[!Note] 在开始创建共享变量时,作用域就被指定,且不可更改。

创建在当前行为树内部使用的共享变量

  1. 点击作用域 tree 处的菜单按钮。
  2. 点击 Create 选项。
  3. 弹出共享变量创建框。
  4. 选择共享变量类型 type
  5. 设置属性 name 。不能为空,否则 Create 按钮不可点击。
  6. 点击 Create 按钮。
  7. 数据写入行为树资源文件。
  8. 共享变量列表自动刷新,

图片不见了?!

创建在当前场景内部使用的共享变量

  1. 点击作用域 scene 处的菜单按钮。
  2. 点击 Create 选项。
  3. 弹出共享变量创建框。
  4. 选择共享变量类型 type
  5. 设置属性 name 。不能为空,否则 Create 按钮不可点击。
  6. 点击 Create 按钮。
  7. 由于作用域 scene 为场景共享,不属于任何行为树,所以数据不会写入行为树资源文件。这种情况下,编辑器会将数据写入到 assets/resources/behavior-dog/generated/ 文件夹下以当前场景 UUID 命名的 JSON 文件里。如果文件不存在,会自动创建。
  8. 共享变量列表自动刷新。

图片不见了?!

图片不见了?!

删除共享变量

参考下面的 删除按钮 小节。

共享变量检查器

类名

通过 btclass 注册的共享变量类名会显示在这个地方:

图片不见了?!

名字

共享变量的属性 name 会显示在这个地方:

图片不见了?!

展开按钮

默认情况下,列表上所有共享变量都为折叠状态。

点击展开按钮可查看和修改共享变量的 属性

图片不见了?!

引用计数

每个共享变量内部都维护着一个引用计数。

图片不见了?!

颜色的意义

当引用计数不为 0 时,可以从引用计数显示的颜色判断出引用对象当前的状态。

  • 白色 ,表明各引用对象处于正常的 可执行 状态。
  • 红色 ,表明该共享变量有错误待解决,或者引用对象中至少有一个是处于 不可执行 状态。如下图:

图片不见了?!

  • 黄色 ,表明该共享变量有警告待解决。如下图:

图片不见了?!

引用对象

展开共享变量时,如果引用计数不为 0 ,在删除按钮下面会列出所有引用该共享变量的对象信息。

图片不见了?!

格式
  • 如果引用对象为行为树组件,则显示格式为 BehaviorTree <behaviorName>
  • 如果引用对象为行为树任务, 则显示格式为 Task - 类名 <name>
  • 如果引用对象为共享变量, 则显示格式为 SharedVariable - 类名 <name>

上图传达的信息是,名字为 null 的任务 WithinSight ,引用了名为 Enemy 的共享变量 SharedCCNode

颜色的意义
  • 当引用对象显示为 蓝色 时,表明其为 可执行 状态。
  • 当引用对象显示为 红色 时,表明其有错误待解决,为 不可执行 状态。

上图传达的信息是,任务 WithinSight 当前是 可执行 状态。

删除按钮

展开共享变量,其底部会出现一个删除按钮。

如果共享变量没有被行为树组件、行为树任务或者其他共享变量引用,则可以被删除。如下图:

图片不见了?!

如果共享变量被行为树组件、行为树任务或者其他共享变量之中任意一个引用,则不可被删除。如下图:

图片不见了?!

菜单

图片不见了?!

  • 点击 Create 选项可叫出共享变量创建框。
  • 点击 Expand 选项可一次性展开所有共享变量。
  • 点击 Collapse 选项可一次性折叠起所有共享变量。
  • 点击 Delete Unused 选项可一次性删除所有可被删除的共享变量。

results matching ""

    No results matching ""