2014-09-03 2 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

Вы должны создать новую функцию с инструкцией 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); 
    } 

} 
+0

changeSprites(); дает мне ошибку синтаксического анализа – Crocus

+0

Добавить точку с запятой; после каждой строки спрайта. И, очевидно, измените SPRITE1 на фактический спрайт. Извините, что забыл об этом – Kashbel

Смежные вопросы