Страница 1 из 1

Смена уровня через триггер

СообщениеДобавлено: 25 фев 2017, 20:57
83939
Сам скрипт:
Синтаксис:
Используется csharp
 void OnTriggerEnter(Collider tr)
    { Application.LoadLevel(1);
            }

У меня много уровней и на каждый нужен свой скрипт с измененным числом в строчке Application.LoadLevel
Вопрос:
Как сделать так, чтобы был всего один скрипт и можно было менять это число через инспектор...int'овая переменная делает какую-то дичь, или, возможно, это я не так написал...

Re: Смена уровня через триггер

СообщениеДобавлено: 25 фев 2017, 21:16
samana
83939 писал(а):int'овая переменная делает какую-то дичь, или, возможно, это я не так написал...

А вы покажите это, так как проблем быть по идее не должно было.

Re: Смена уровня через триггер

СообщениеДобавлено: 25 фев 2017, 21:19
83939
samana писал(а):
83939 писал(а):int'овая переменная делает какую-то дичь, или, возможно, это я не так написал...

А вы покажите это, так как проблем быть по идее не должно было.

Синтаксис:
Используется csharp
public int yroven;
 void OnTriggerStay(Collider tr)
    {   Application.LoadLevel(yroven);
            }

Я пишу уровень 17 (В окне компиляции игры он есть), а запускается либо какой-то рандомный, либо вообще уровень просто перезагружается...Возможно я что-то не дописал или вообще неправильно написал.

Re: Смена уровня через триггер

СообщениеДобавлено: 25 фев 2017, 21:41
samana
Должно было работать нормально, если у вас действительно в BuildSettings есть уровень под индексом (не именем) 17.

Re: Смена уровня через триггер

СообщениеДобавлено: 26 фев 2017, 09:55
simmetr
А где присваевается значение переменке? Во входных метода - нет. В объяве - нет. Где? Что то, мне кажется, что там и нид искать...

Re: Смена уровня через триггер

СообщениеДобавлено: 26 фев 2017, 20:00
83939
samana писал(а):Должно было работать нормально, если у вас действительно в BuildSettings есть уровень под индексом (не именем) 17.

И все же уровень просто перезагружается

Re: Смена уровня через триггер

СообщениеДобавлено: 26 фев 2017, 21:00
JTProjects
У вас какая версия Unity? Application.loadLevel объявлен устаревшим, вместо него теперь используется:
Синтаксис:
Используется csharp
using UnityEngine.SceneManagement;
.......
SceneManager.LoadScene(sceneBuildIndex);


Если вам нужно загрузить следующую сцену (сцену со следующим по порядку индексом), можно использовать:

SceneManager.LoadScene(SceneManager.GetActiveScene ().buildIndex + 1);

Re: Смена уровня через триггер

СообщениеДобавлено: 27 фев 2017, 07:53
83939
JTProjects писал(а):У вас какая версия Unity? Application.loadLevel объявлен устаревшим, вместо него теперь используется:
Синтаксис:
Используется csharp
using UnityEngine.SceneManagement;
.......
SceneManager.LoadScene(sceneBuildIndex);


Если вам нужно загрузить следующую сцену (сцену со следующим по порядку индексом), можно использовать:

SceneManager.LoadScene(SceneManager.GetActiveScene ().buildIndex + 1);

Пользуюсь Unity 4.3

Re: Смена уровня через триггер

СообщениеДобавлено: 27 фев 2017, 18:15
83939
Что-то намудрил , после вернул все назад и теперь при цифре 0 перезагружает уровень , при цифре 2 запускает 1ый лвл, после вообще рандомный уровень при другом числе, а ведь раньше такого не было...

Re: Смена уровня через триггер

СообщениеДобавлено: 27 фев 2017, 20:00
JTProjects
Попробуйте так:

Синтаксис:
Используется csharp
 void OnTriggerStay(Collider tr)
    {   Application.LoadLevel(Application.loadedLevel+1);
            }