2016-05-31 82 views
0

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

Screenshot 2

如果您需要了解更多信息或其他图片,只是让我知道。谢谢! :)

+1

使用援引在Unity定时器。 – Fattie

+0

您是否试图创建一个在4个子图像之间转换的动画? – LeftRight92

+0

嘿,我想通了。这是我最好的愚蠢。谢谢您的回复的,虽然,我会给予好评您的意见@JoeBlow –

回答

0

您不使用Sprite为动画元件(SpriteRenderer)设置动画效果。精灵是具有一些特殊属性的纹理,因此它被特别考虑。

你不动画纹理,它只是一个形象,你有一组你交换创造动画效果的纹理。

如果你想动画的3-2-1-去,你首先需要创建一个Sprite游戏物体,然后分配一个精灵纹理,然后创建一个动画和动画剪辑。

您的动画将在特定时间交换当前纹理,最有可能与动画事件交换。

事实上,它可能会更容易通过脚本来做到这一点:

// 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 
} 
+0

只是想通了,我的问题是,我今天想完全错误的!而不是点击Sprite来设置动画,我不得不点击UI图像。我花了几个小时试图弄清楚,毕竟是如此简单! UGHH!但是,谢谢你的回答。因为您花时间回复并且知道您在说什么,所以我会将其标记为正确。谢谢:) –

+0

我会保存脚本为它未来的需求情况! @Everts –