我一直在为一个学校项目开展团结游戏。目前我正试图在比赛开始前进行倒计时。我确信这是基础知识,但我对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;”之后。每个精灵应该在下一个精灵出现之前显示一秒钟。
答案 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);
}
}