为什么Unity不允许我为我的精灵使用动画?

时间:2016-05-31 19:44:32

标签: user-interface animation unity3d sprite unity5

我正在为我的游戏制作一个倒数计时器,我需要为这些精灵制作动画:“3”,“2”,“1”,“Go!”。我确切知道如何制作动画,这不是我的问题。我的问题是:为什么Unity不让我选择所有4个精灵并为它们制作动画? Screenshot 1

Screenshot 2

如果您需要更多信息或其他图片,请告诉我们。谢谢! :)

1 个答案:

答案 0 :(得分:0)

您没有动画精灵,您可以使用精灵为组件(SpriteRenderer)设置动画。精灵是具有一些特殊属性的纹理,因此它被特别考虑。

您不会为纹理设置动画,它只是一个图像,您有一组纹理可以交换以创建动画效果。

如果要为3-2-1-Go设置动画,首先需要创建一个Sprite gameObject,然后为其指定一个sprite纹理,然后创建一个Animator和一个动画剪辑。

您的动画会在特定时间交换当前纹理,很可能是动画事件。

实际上,通过脚本执行此操作可能更容易:

// Drag sprites, make sure they are in order (3->2->1->Go)
public Sprite[] sprites; 
public SpriteRenderer sp;
int index = 0;

void Start()
{
     // Check your sprites and sp
     InvokeRepeating("SwapSprite", 1.0f,1.0f); // Start timer to swap each second
     sp.sprite = sprites[index]; // Set initial sprite
}

private void SwapSprite()
{
     if(++index == sprites.Length) // Increase the index and check we run out of sprites
     { 
         CancelInvoke(); 
         sp.enabled = false; // Remove the counter 
         this.enabled = false; // That scripts is no more useful (could be destroyed)
         return; 
     }
     sp.sprite = sprites[index]; // Set new sprite
}