Загрузка сцены - Форум Игроделов
Пт, 17 Май 2024, 08:10 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум Игроделов » UNITY3D » СКРИПТИНГ » Загрузка сцены
Загрузка сцены
ZillsДата: Вс, 17 Авг 2014, 14:48 | Сообщение # 1
Нет аватара
 
Сообщений: 17
Награды: 0
Репутация: 0
Статус: Offline
Приветствую. Использую стандартный скрипт загрузки сцен перед открытием:

Код
using UnityEngine;
using System.Collections;

public class LoadingLevel : MonoBehaviour {

  private AsyncOperation async;
   
  IEnumerator _Start() {
   Debug.Log("Loading... ");
   async = Application.LoadLevelAsync(1);
   Debug.Log("Loading complete");
    
   yield return async;
    
  }
   
  void Update () {
   if(Input.GetKeyDown(KeyCode.A)) {
    StartCoroutine("_Start"); //код согласия
   }
  }

  void OnGUI () {
   GUI.Label(new Rect(10,10,300,20), "Нжмите А для продолжения");
  }
}


Так и должно быть, что при запуске сцены, на которой присутствует скрипт, он быстро загружает следующую сцену? Без разницы как много полигонов на следующей сцене, он все равно, при входе в сцену с этим скриптом сразу предлагает нажать А и загрузить новую сцену.
 
СообщениеПриветствую. Использую стандартный скрипт загрузки сцен перед открытием:

Код
using UnityEngine;
using System.Collections;

public class LoadingLevel : MonoBehaviour {

  private AsyncOperation async;
   
  IEnumerator _Start() {
   Debug.Log("Loading... ");
   async = Application.LoadLevelAsync(1);
   Debug.Log("Loading complete");
    
   yield return async;
    
  }
   
  void Update () {
   if(Input.GetKeyDown(KeyCode.A)) {
    StartCoroutine("_Start"); //код согласия
   }
  }

  void OnGUI () {
   GUI.Label(new Rect(10,10,300,20), "Нжмите А для продолжения");
  }
}


Так и должно быть, что при запуске сцены, на которой присутствует скрипт, он быстро загружает следующую сцену? Без разницы как много полигонов на следующей сцене, он все равно, при входе в сцену с этим скриптом сразу предлагает нажать А и загрузить новую сцену.

Автор - Zills
Дата добавления - 17 Авг 2014 в 14:48
HunjethДата: Вс, 17 Авг 2014, 17:46 | Сообщение # 2
 
Сообщений: 354
Награды: 1
Репутация: 112
Статус: Offline
Я не понял что ты хочешь.
Функция LoadLevelAsync позволяет загрузить уровень во время игрового процесса, реализовать полоску загрузки, загрузить или выгрузить часть сцены вокруг игрока.


Сообщение отредактировал Hunjeth - Вс, 17 Авг 2014, 18:16
 
СообщениеЯ не понял что ты хочешь.
Функция LoadLevelAsync позволяет загрузить уровень во время игрового процесса, реализовать полоску загрузки, загрузить или выгрузить часть сцены вокруг игрока.

Автор - Hunjeth
Дата добавления - 17 Авг 2014 в 17:46
ZillsДата: Вс, 17 Авг 2014, 22:10 | Сообщение # 3
Нет аватара
 
Сообщений: 17
Награды: 0
Репутация: 0
Статус: Offline
При нажатии кнопки играть, перейти на сцену с этим скриптом, чтобы он прогрузил 3ю сцену и при нажатии "А" он без тормозов загрузил ее.
 
СообщениеПри нажатии кнопки играть, перейти на сцену с этим скриптом, чтобы он прогрузил 3ю сцену и при нажатии "А" он без тормозов загрузил ее.

Автор - Zills
Дата добавления - 17 Авг 2014 в 22:10
HunjethДата: Пн, 18 Авг 2014, 03:12 | Сообщение # 4
 
Сообщений: 354
Награды: 1
Репутация: 112
Статус: Offline
лаг зависит от железа, и проверять надо не в редакторе.

Код
using UnityEngine;
using System.Collections;

public class LoadingLevel : MonoBehaviour {
          public int level = 2;
          private AsyncOperation async;
          private bool once;

          IEnumerator LoadScene() {
              Debug.Log("Loading... ");     
              async = Application.LoadLevelAsync(level);
              while (!async.isDone) { yield return null; }
              yield;
              Debug.Log("Loading complete");
          }
              
          void Start() { if (!once) { once = true; StartCoroutine(LoadScene()); } }
          void Awake() { DontDestroyOnLoad(gameObject); }

          void Update () {
              if(Input.GetKeyDown(KeyCode.A)) {
                  StartCoroutine(LoadScene());
              }
          }

          void OnGUI () {
              GUI.Label(new Rect(10,10,300,20), "Нжмите А для продолжения");
          }
}


Сообщение отредактировал Hunjeth - Вт, 19 Авг 2014, 21:33
 
Сообщениелаг зависит от железа, и проверять надо не в редакторе.

Код
using UnityEngine;
using System.Collections;

public class LoadingLevel : MonoBehaviour {
          public int level = 2;
          private AsyncOperation async;
          private bool once;

          IEnumerator LoadScene() {
              Debug.Log("Loading... ");     
              async = Application.LoadLevelAsync(level);
              while (!async.isDone) { yield return null; }
              yield;
              Debug.Log("Loading complete");
          }
              
          void Start() { if (!once) { once = true; StartCoroutine(LoadScene()); } }
          void Awake() { DontDestroyOnLoad(gameObject); }

          void Update () {
              if(Input.GetKeyDown(KeyCode.A)) {
                  StartCoroutine(LoadScene());
              }
          }

          void OnGUI () {
              GUI.Label(new Rect(10,10,300,20), "Нжмите А для продолжения");
          }
}

Автор - Hunjeth
Дата добавления - 18 Авг 2014 в 03:12
игнатДата: Вт, 19 Авг 2014, 21:00 | Сообщение # 5
 
Сообщений: 706
Награды: 0
Репутация: 107
Статус: Offline
http://gamecreatingcommunity.ru/forum/178-6322-1?l5ps3S?lNVCkl


Правила форума · участник GCC
 
Сообщениеhttp://gamecreatingcommunity.ru/forum/178-6322-1?l5ps3S?lNVCkl

Автор - игнат
Дата добавления - 19 Авг 2014 в 21:00
Форум Игроделов » UNITY3D » СКРИПТИНГ » Загрузка сцены
  • Страница 1 из 1
  • 1
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2024