我正在为我的游戏制作一个倒数计时器,我需要为这些精灵制作动画:“3”,“2”,“1”,“Go!”。我知道如何做这个动画,所以这不是我的问题。我的问题是:为什么Unity不让我选择所有4个精灵并对它们进行动画处理? 为什么不会让我的动画使用我的雪碧?
如果您需要了解更多信息或其他图片,只是让我知道。谢谢! :)
我正在为我的游戏制作一个倒数计时器,我需要为这些精灵制作动画:“3”,“2”,“1”,“Go!”。我知道如何做这个动画,所以这不是我的问题。我的问题是:为什么Unity不让我选择所有4个精灵并对它们进行动画处理? 为什么不会让我的动画使用我的雪碧?
如果您需要了解更多信息或其他图片,只是让我知道。谢谢! :)
您不使用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
}
只是想通了,我的问题是,我今天想完全错误的!而不是点击Sprite来设置动画,我不得不点击UI图像。我花了几个小时试图弄清楚,毕竟是如此简单! UGHH!但是,谢谢你的回答。因为您花时间回复并且知道您在说什么,所以我会将其标记为正确。谢谢:) –
我会保存脚本为它未来的需求情况! @Everts –
使用援引在Unity定时器。 – Fattie
您是否试图创建一个在4个子图像之间转换的动画? – LeftRight92
嘿,我想通了。这是我最好的愚蠢。谢谢您的回复的,虽然,我会给予好评您的意见@JoeBlow –