在Unity中切换精灵

时间:2014-09-03 09:24:32

标签: c# unity3d

我一直在为一个学校项目开展团结游戏。目前我正试图在比赛开始前进行倒计时。我确信这是基础知识,但我对Unity来说还是个新手。

这是我的剧本:

using UnityEngine;
using System.Collections;

public class StartScreen : MonoBehaviour {

    static bool sawOnce = false;

    // Use this for initialization
    void Start () {
        if(!sawOnce) {
            GetComponent<SpriteRenderer>().enabled = true;
            Time.timeScale = 0;
        }

        sawOnce = true;
    }

    // Update is called once per frame
    void Update () {
        if(Time.timeScale==0 && (Input.GetKeyDown(KeyCode.Space) || Input.GetMouseButtonDown(0)) ) {
            Time.timeScale = 1;
            GetComponent<SpriteRenderer>().enabled = false;

        }
    }
}

我希望在“Time.timeScale = 1”之前在三个不同的精灵之间进行更改在“GetComponent()。enabled = false;”之后。每个精灵应该在下一个精灵出现之前显示一秒钟。

1 个答案:

答案 0 :(得分:0)

您应该使用wait语句创建一个新函数。 这样的事情会起作用。

void Update () {
    if(Time.timeScale==0 && (Input.GetKeyDown(KeyCode.Space) || Input.GetMouseButtonDown(0)) ) {
        Time.timeScale = 1;
        changeSprites();
        GetComponent<SpriteRenderer>().enabled = false;

    }
}
    IEnumerator changeSprites(){
        GetComponent<SpriteRenderer>().sprite = SPRITE1
        yield return new WaitForSeconds(1);
        GetComponent<SpriteRenderer>().sprite = SPRITE2
        yield return new WaitForSeconds(1);
        GetComponent<SpriteRenderer>().sprite = SPRITE3
        yield return new WaitForSeconds(1);
    }

}