【问题标题】:Switching between sprites in Unity在 Unity 中切换精灵
【发布时间】:2014-10-27 17:48:20
【问题描述】:

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

【问题讨论】:

    标签: c# unity3d


    【解决方案1】:

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

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

    【讨论】:

    • 加分号;在每个精灵线之后。并且显然将 SPRITE1 更改为实际的精灵。抱歉忘记了
    猜你喜欢
    • 2013-08-02
    • 1970-01-01
    • 2020-06-09
    • 1970-01-01
    • 1970-01-01
    • 2019-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多