如何使精灵每次10秒过渡到新的精灵

时间:2019-07-08 17:36:10

标签: c# unity3d sprite

我正在为我的Unity3D游戏制作字幕场景,但背景图片有问题。我有5个要用于背景图像的精灵。我是C#的新手,所以有人可以帮我制作一个脚本,每10-15秒交换一次图片吗?

2 个答案:

答案 0 :(得分:2)

想要的声音an animation

Unity的动画编辑器将使您可以为附加到GameObject的 any 组件的 any 属性创建动画。这包括更改其精灵。

添加一个属性,将其指向sprite组件,并在时间轴上每10秒创建一个关键帧。在这些关键帧处,更改精灵的图像。

保存。就是这样!

答案 1 :(得分:1)

听起来像协程的理想用法:https://docs.unity3d.com/Manual/Coroutines.html

这是一个大概的例子。

public List<Sprite> spritesToSwap; // contains all the sprites to loop through

IEnumerator SwapSprites() {
    int spriteIndex = 0;
    while (true) {
        gameObject.GetComponent<SpriteRenderer>().sprite = spritesToSwap[spriteIndex];
            // ^ replace the sprite
        spriteIndex++;
        if (spriteIndex == spritesToSwap.Count) spriteIndex = 0;
            // ^ loop back to first sprite
        yield return new WaitForSeconds(10f); // adjust this time as desired
    }
}

如果要start it,请致电StartCoroutine(SwapSprites()),如果/如果要结束,请致电StopCoroutine(SwapSprites())