在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;
}
}
但是,当动画开始播放时,整个屏幕会闪烁一次。如何去除闪烁?
答案 0 :(得分:2)
我认为问题在于您在运行时尝试启用和禁用Animator组件。 Animator不是设计成这样使用的。如果你想在某个时间点播放动画,只需启用Animator,创建2个状态 - &#34; Idle&#34;和#34; YourAnimation&#34;,在它们之间创建转换并使用一些bool参数控制它。
很简单的方法是使用动画组件(如果你不需要Mecanim和状态之间的转换),你可以用一行代码来播放动画:
gameObject.GetComponent<Animation>().Play("MyAnimation");