Unity - изменить сцену через определенное время

Я разрабатываю игру для Oculus Gear VR (учитывая управление памятью), и мне нужно загрузить другой экран через определенное время в секундах

void Start () {

    StartCoroutine (loadSceneAfterDelay(30));

    }

    IEnumerator loadSceneAfterDelay(float waitbySecs){

        yield return new WaitForSeconds(waitbySecs);
        Application.LoadLevel (2);
    } 

это работает просто отлично,

мои вопросы:

1- Каковы наилучшие методы для достижения этой цели?

2- Как отображать таймер для игрока, показывающий, сколько секунд осталось до конца уровня.


person Mina Fawzy    schedule 27.08.2015    source источник


Ответы (1)


Да, это правильный путь. Вот пример кода для отображения сообщения обратного отсчета:

using UnityEngine;
using System.Collections;

public class Test : MonoBehaviour
{
    bool loadingStarted = false;
    float secondsLeft = 0;

    void Start()
    {
        StartCoroutine(DelayLoadLevel(10));
    }

    IEnumerator DelayLoadLevel(float seconds)
    {
        secondsLeft = seconds;
        loadingStarted = true;
        do
        {
            yield return new WaitForSeconds(1);
        } while (--secondsLeft > 0);

        Application.LoadLevel("Level2");
    }

    void OnGUI()
    {
        if (loadingStarted)
            GUI.Label(new Rect(0, 0, 100, 20), secondsLeft.ToString());
    }
}
person Chen Hao    schedule 27.08.2015
comment
спасибо, но я хочу изменить размер ярлыка, расположить его в правом верхнем углу экрана - person Mina Fawzy; 27.08.2015
comment
Вы можете использовать параметр Rect функции GUI.Label() для указания координат. Чтобы автоматически соответствовать размеру экрана, вы можете использовать переменную Screen.width для расчета. - person Chen Hao; 27.08.2015