配置表
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数据配置
 - Target : 会在初始化的时候(将行为树加载到战斗对象上时)被初始化
 
AI数据通用API
- BaseAIScriptableObject
 - 该类是所有AI数据的基类
 - 主要用于关联行为树、StaticObject
 - TaskFailure:数据运行失败
 - TaskSuccess:数据运行成功
 
判断
-BaseAIConditional
-直接继承BaseAIScriptableObject
动作
- BaseAIAction:动作数据的基类
 - 动作通常不是循环的,播放一次性动画的
 - 包括
- ActionRun:播放角色动画
 - OnAnimationPlayEnd:ActionRun完成后会调用
 
 
其他
- BaseAILoop:可随时随时打断的数据
- 其子类:
 - BaseAIMove
 - BaseAIIdle
 
 - BaseAIRunScriptable:BaseAILoop、BaseAIAction 的父类,直接继承BaseAIScriptableObject
- 封装了一个:Effects 变量,可以放一些进入这个数据和退出这个数据的一些特效
 
 
新增AI数据
- 新增AI数据步骤
 - 先选中AI行为树的文件夹,这样就会在对应行为树下自动添加数据以及创建文件
 
- 创建后数据被添加到行为树变量列表中
 - 创建对应类型节点容器,关联变量