Загрузка сцены
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