unity使用Animator Override Controller来模板化管理动画
假设存在以下两种Enemy,
每种Enemy都有自己的Idel动画切片和Move动画切片,
此时想要实现动画的切换,则需要给它们各新建一个RuntimeAnimatorController,
分别给它们添加名为“IsMove”的bool值,
并连线,选择切换条件。
而以上“设置bool,连线,选择”操作将重复操作于每一种Enemy,意味着每多一种Enemy,都要新建一个RuntimeAnimatorController,造成了内存的浪费。
而使用Animator Override Controller,将避免以上重复操作:
1:新建一个RuntimeAnimatorController,命名为Base Animator Controller,新建两个空动画切片,并连线,设置并选择bool值
2:给第一种Enemy新建一个Animator Override Controller,并指定其“继承”的RuntimeAnimatorController(即Base Animator Controller),同时为“继承”到的BaseIdel和BaseMove赋值:、
3.给第一种Enemy添加动画控制器,并给其Controller赋值
4.对其他种类的Enemy重复2,3步操作
5.在对应脚本中改变“IsMove”
Animator Override Controller的文件大小比Animator Controller小很多,且操作简单,故当一些Prefab具有相同的控制器结构而具有不同的动画切片时,应优先使用Animator Override Controller。