100个 Unity实用技能☀️ | Unity 复用动画控制器 Animator Override Controller 的简单使用

Posted 呆呆敲代码的小Y

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了100个 Unity实用技能☀️ | Unity 复用动画控制器 Animator Override Controller 的简单使用相关的知识,希望对你有一定的参考价值。

Unity 小科普

老规矩,先介绍一下 Unity 的科普小知识:

  • Unity是 实时3D互动内容创作和运营平台 。
  • 包括游戏开发美术建筑汽车设计影视在内的所有创作者,借助 Unity 将创意变成现实。
  • Unity 平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和3D内容,支持平台包括手机平板电脑PC游戏主机增强现实虚拟现实设备。
  • 也可以简单把 Unity 理解为一个游戏引擎,可以用来专业制作游戏
  • 🎬 博客主页:https://xiaoy.blog.csdn.net

  • 🎥 本文由 呆呆敲代码的小Y 原创,首发于 CSDN🙉

  • 🎄 学习专栏推荐:Unity系统学习专栏

  • 🌲 游戏制作专栏推荐:游戏制作

  • 🌲Unity实战100例专栏推荐:Unity 实战100例 教程

  • 🏅 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!

  • 📆 未来很长,值得我们全力奔赴更美好的生活✨

  • ------------------❤️分割线❤️-------------------------


Unity 实用小技能学习

Unity 复用动画控制器 Animator override controller 的简单使用

本篇文章介绍一下Unity中的 复用动画控制器: Animator Override Controller

Animator Override Controller 是用来配合Animator Controller使用的,它让Animator Controller变得更加实用,可以让不同的使用实例的在同一状态播放不同的动作,但保留原有的结构、参数和逻辑。

Animator Override Controller 官方API介绍地址:

https://docs.unity3d.com/ScriptReference/AnimatorOverrideController.html

具体使用事例:

新建一个Animator Override ControllerAnimator Controller,右键Create即可。

Animator Override Controller有一个小的加号‘+’,可以看到与Animator Controller有所区别。

我们在 Animator Controller 中添加几个动画片段,如 Idle 与 Move。

此时可以通过新建多个AnimatorOverrideController来添加使用同一个Animator Controller,但是使用不同的动画片段来控制角色进行播放不同的动画了。

这样我们就可以在几个不同的角色身上挂载同一个AnimatorController,然后通过更换Animator Override Controller控制不同动画片段的播放了。

//通过代码更换AnimatorController的Animator Override Controller
animator.runtimeAnimatorController = animatorOverrideController;

前提是这几个不同的角色的几个动画状态应该是一致的,比如都有走路、攻击、奔跑的状态,且不同片段之间的转换条件都是一样的。

在不使用 Animator Override Controller 的情况下,我们通常的做法是一人一个 AnimatorController 来完成不同动画片段切换。

再比如在FPS游戏中,我们在有多个枪支的情况下,也可以只使用一个AnimatorController,通过添加多个Animator Override Controller来实现开枪、换弹等动画片段的转换。

优点

  1. 使用的是同一份Animator Controller的转换逻辑,要修改的话非常方便,只要改一个地方就够了。
  2. Animator Override Controller 的文件大小比Animator Controller小很多,毕竟它只存储了状态对应的播放动画,而没记录其他转换、事件之类的各种信息。
  3. 在开发过程中发现,在RunTime中实时切换Animator Override Controller是可以实现的,但是实时切换 AnimatorController 只能再Editor中才可以,打包程序会报错,所以这也是使用Animator Override Controller的一个必要条件。当然如果不需要在运行过程中切换某个对象的动画控制器,那就使用AnimatorController就好啦 !

不足:优点1同时也是它的缺点,因为只能够定制播放的动画,所以如果想要在其他设置中也想要单独特化的话,就做不到了。

本篇文章就到这里啦,简单介绍一下 Animator Override Controller 的使用方法就好了,一般不是很常用。

后面有需要的话会再对 Animator Override Controller 进行一个详细的介绍。


以上是关于100个 Unity实用技能☀️ | Unity 复用动画控制器 Animator Override Controller 的简单使用的主要内容,如果未能解决你的问题,请参考以下文章

100个 Unity实用技能☀️ | 修改Unity UI控件中默认字体配置

100个 Unity实用技能☀️ | Unity 将秒数转化为00:00:00时间格式

100个 Unity实用技能☀️ | Unity 将秒数转化为00:00:00时间格式

100个 Unity实用技能☀️ | Unity中 检查当前设备网络状态 的几种方法整理

100个 Unity实用技能☀️ | Unity InputSystem中拿到触摸屏幕的坐标,鼠标的坐标等

100个 Unity实用技能☀️ | Unity读取本地文件(Json,txt等)的三种方法示例