启用动画制作会导致闪烁?

时间:2015-05-14 10:52:59

标签: c# unity3d

在Unity 3D(2D模式)中,我有一些与Animator链接的游戏对象,以及使用动画时间线制作的动画。动画最初被禁用:

public GameObject car;
Animator carAnim;
void Start() {
  carAnim = car.GetComponent<Animator>();
  carAnim.enabled = false;
}

然后,使用输入事件,动画设置为启用:

void Update() {
  if(Input.GetKeyDown(0)) {
    carAnim.enabled = true;
  }
}

但是,当动画开始播放时,整个屏幕会闪烁一次。如何去除闪烁?

1 个答案:

答案 0 :(得分:2)

我认为问题在于您在运行时尝试启用和禁用Animator组件。 Animator不是设计成这样使用的。如果你想在某个时间点播放动画,只需启用Animator,创建2个状态 - &#34; Idle&#34;和#34; YourAnimation&#34;,在它们之间创建转换并使用一些bool参数控制它。

很简单的方法是使用动画组件(如果你不需要Mecanim和状态之间的转换),你可以用一行代码来播放动画:

gameObject.GetComponent<Animation>().Play("MyAnimation");