Unity如何为程序化生成的实例化GameObject绑定预制动画?
问题描述
我正在Unity中开发一个程序化生成武器系统(可生成瞄准镜、十字准星等部件的无限组合),现在想为这些武器添加动画。例如,无论武器外观如何,玩家奔跑时播放挥砍动画,射击时播放后坐力动画等。经过调研和尝试,仍无法实现该功能。
我的生成武器结构如下:
- 父物体Weapon,挂载自定义Weapon脚本(完全从零实例化,非预制体)
- Weapon父物体下是武器各部件的GameObject(十字准星、瞄准镜、弹夹等)
- 部分部件(十字准星和主体)下有用于玩家手部目标的空GameObject,武器握持由逆运动学(IK)驱动
请问如何在武器生成时为其添加Animator或动画,以驱动手部目标(或整个武器,进而带动手部目标)?另外,能否在编辑器中为空白GameObject创建动画,再在武器生成时绑定到武器上?动画通常与被动画的GameObject绑定,我不清楚如何实现。
已解决的解决方案
以下是实现步骤:
- 创建Animation Clip后,若双击编辑关键帧时提示需添加Animator Controller,可先创建一个空Cube,为其添加Animation组件(而非Animator组件),将创建好的Animation Clip拖拽到该组件上,即可正常双击编辑动画关键帧。
- 创建新的Animator Controller,添加对应动画状态后,点击Inspector右上角的三点按钮,将检查器模式从「Normal」切换为「Debug」,选中Animation Clip并取消勾选
Legacy参数。 - 此时该动画即可分配给任意Animator Controller的任意状态并生效。
- 在运行时,通过
animator.runtimeController属性将配置好的Animator Controller分配给程序化生成的Weapon父物体即可。
内容的提问来源于stack exchange,提问作者Romain
相关产品推荐
相关产品推荐

