C# 启用Animator会导致闪烁吗?
在Unity 3D(2D模式)中,我有一些与Animator链接的游戏对象,以及使用动画时间线制作的动画。动画最初被禁用:C# 启用Animator会导致闪烁吗?,c#,unity3d,C#,Unity3d,在Unity 3D(2D模式)中,我有一些与Animator链接的游戏对象,以及使用动画时间线制作的动画。动画最初被禁用: public GameObject car; Animator carAnim; void Start() { carAnim = car.GetComponent<Animator>(); carAnim.enabled = false; } 但是,当动画开始播放时,整个屏幕闪烁一次。如何消除闪烁?我认为问题在于您试图在运行时启用和禁用Animato
public GameObject car;
Animator carAnim;
void Start() {
carAnim = car.GetComponent<Animator>();
carAnim.enabled = false;
}
但是,当动画开始播放时,整个屏幕闪烁一次。如何消除闪烁?我认为问题在于您试图在运行时启用和禁用Animator组件。动画师不是被设计成这样使用的。如果您想在某个时间点播放动画,只需启用Animator,创建两个状态-“空闲”和“YourAnimation”,在它们之间创建过渡,并使用一些布尔参数进行控制 更简单的方法是使用动画组件(如果您不需要Mecanim和状态之间的转换),您只需一行代码即可播放动画:
gameObject.GetComponent<Animation>().Play("MyAnimation");
gameObject.GetComponent().Play(“MyAnimation”);
能否检查动画时间线开始值。可能是当你开始录制动画时,屏幕或游戏对象的位置可能发生了错误的移动。我仔细检查了所有动画。它们在0秒时具有关键帧。值得一提的是,没有动画的部分(例如背景)也会闪烁。这在Unity Editor和iOS上发生。关键帧在0秒不是问题,但游戏对象的初始值在0关键帧处。对我来说,每当我启动动画并尝试将其包导出到设备并运行时,它不会闪烁。如果该软件包在设备上运行良好,则可能是您的图形卡问题。您的动画仅更改精灵,还是更改时间轴中的任何其他属性?任何附加到动画开始的事件?仅供参考,根本没有动画组件。使用动画组件将导致警告,并且动画无法控制。请参阅,然后您应该在Mecanim中正确设置状态和转换,并且不要触摸Animator组件的“enabled”属性。更多信息
gameObject.GetComponent<Animation>().Play("MyAnimation");