配置表

AI系统

  • BaseDirector:一个AI实例下(BaseDirector)所有AI数据都能访问到的一个公共变量区域

    • AIMark:存放一些AI产生的临时变量(比如播放变身动画后,标记一下现在为变身状态)
    • enemysAICache:存放了敌人的缓存
  • AIDirectorTree

    • 这个主要就是转接到行为树的
    • SetOverwriteBehavior:更换AI的行为树,可以在初始化或者一些其他情况进行AI行为树的替换
      • 比如出怪点,在A地点的怪可能与B地点的不一样。这样可以在出怪点产生怪物的时候,将其行为树覆盖为其他行为树,就可以有不同的行动逻辑。
    • ResetOverwriteBehavior
      • 还原会默认的行为树

    行为树

  • 行为树路径:Assets/Game/Resources/AI/BattleAI

  • 默认的行为树名字就是战斗对象的Id

  • BDAIMove:移动数据容器节点

  • BDAIAction:动作数据容器节点

  • BDAIConditional:判断数据容器节点

  • BDAIIdle:待机数据容器节点

  • 节点

    • 通常情况下是不需要修改
    • 主要的数据是用 BaseAIRunScriptable (ScriptableObject)实现的
  • AI数据初始化

    • Target : 会在初始化的时候(将行为树加载到战斗对象上时)被初始化
      • Target 会被赋值为当前的战斗对象
      • 比如说,如果是狼的行为树,这个时候Target获取到的就是狼)

    扩展AI数据配置

AI数据通用API
  • BaseAIScriptableObject
  • 该类是所有AI数据的基类
  • 主要用于关联行为树、StaticObject
  • TaskFailure:数据运行失败
  • TaskSuccess:数据运行成功
判断

-BaseAIConditional
-直接继承BaseAIScriptableObject

动作
  • BaseAIAction:动作数据的基类
  • 动作通常不是循环的,播放一次性动画的
  • 包括
    • ActionRun:播放角色动画
    • OnAnimationPlayEnd:ActionRun完成后会调用
其他
  • BaseAILoop:可随时随时打断的数据
    • 其子类:
    • BaseAIMove
    • BaseAIIdle
  • BaseAIRunScriptable:BaseAILoop、BaseAIAction 的父类,直接继承BaseAIScriptableObject
    • 封装了一个:Effects 变量,可以放一些进入这个数据和退出这个数据的一些特效

新增AI数据

  • 新增AI数据步骤
  • 先选中AI行为树的文件夹,这样就会在对应行为树下自动添加数据以及创建文件
  • 创建后数据被添加到行为树变量列表中
  • 创建对应类型节点容器,关联变量