2014-09-03 131 views
0

我一直在为一个学校项目开发一个统一的游戏。目前我正在尝试在比赛开始前进行倒数计时。我确信这是基础知识,但我对Unity相当陌生。在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

您应该创建一个带有等待语句的新函数。 这样的事情会起作用。

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); 
    } 

} 
+0

changeSprites();给我一个解析错误 – Crocus 2014-09-03 09:44:13

+0

添加一个分号;在每个精灵线之后。显然,将SPRITE1更改为实际的精灵。对不起,忘了它 – Kashbel 2014-09-03 11:41:11