团结|如何播放存储在变量中的动画(动画师中没有动画)

时间:2019-09-11 08:21:15

标签: unity3d animation animator

我正在创建一个2D格斗游戏,玩家可以从许多战斗机中进行选择。战斗机以不同的动画进行不同的攻击。<​​/ p>

每次攻击的数据(损坏,打击盒,施法时间,动画等)存储在一个可脚本编写的对象中,然后由播放器脚本触发。到目前为止,效果还不错,但是如果不将其放入动画制作器中,我就无法找到如何从代码中播放动画。

我已经尝试了几种在这里找到的解决方案,但是它们似乎最终不得不不得不将动画放入动画制作器中。

2 个答案:

答案 0 :(得分:0)

  

但是我无法在不需要动画制作者的情况下从代码中找到如何播放动画。

您将需要Animator-Component来运行动画。

但是您可以分配要在运行时播放的动画。为此,您需要RuntimeAnimationController来保存AnimatorController对象,并将其分配给您的Animator(以代码形式)。

答案 1 :(得分:0)

您不一定需要this answer中所述的Animator组件。

还有Animation组件。它被标记为legacy,但仍然非常强大,尤其是当您不需要配置整个状态机而只想简单地播放单个AnimationClip时。可能是为什么它仍使其成为新的Unity版本的原因:

public AnimationClip clip;

private void Awake()
{
    var animation = GetComponent<Animation>();
    animation.clip = clip;
    animation.Play();
}

另请参见Animation.Play