Неее :)) ну это уже гайд не о том как сделать сохранение чего либо, а о том, как сделать игру. :) В этом обучающем видео ты сделал мини-игру, которую нужно чуть-чуть допилить и сделать уровни с препятствиями, и игра готова! Гайд отличный, спасибо большое!
Фух, 4 часа продуктивной работы. Правда на моменте instate я убил почти час, из-за того что просто не посмотрел видео на секунд 20 дольше 😖. Правда у меня почему-то не сохраняется прогресс🤔, но пожалуй пересмотрю для проверки первую половину в другой день
Спасибо огромное, у меня игра кликер конечно с разными уровнями, но очень помог Я просто вместо приватного класса сделал его публичным и добавил на кнопку, чтобы он на нажатие сохранял и всё работает отлично Спасибо огромное
!ПОМОГИТЕ! Пишет: NullReferenceException: Object reference not set to an instance of an object NextLevel.OnTriggerEnter (UnityEngine.Collider collider) (at Assets/Scripts/ChooseLV/NextLevel.cs:9) Что делать?
Вопрос: а хранение большого количества уровней таким способом целесообразно? Если например уровней будет несколько сотен, или даже тысяч, как в игре Fishdom, тогда как?
В этом методе есть огромная ошибка. У меня всего 5 уровней. Если все 5 уровней открыты и я в сцене уровней выбираю 2-ой, прохожу его и возвращаюсь на сцену с уровнями, то 4 и 5 вновь будут заблокированы.
у меня возникли проблемы, если я прохожу первый уровень ивыхожу в меню, то казалось бы всё норм, но если опять зайти в первый уровень, то он не перенесёт тебя на второй после прохождения
Что делать если при проверке скрипта юнити пишет что ты не написал использование библиотек для int и interactable, хотя ты написал использование. Можно ли как-то исправить скрипт или загрузить библиотеки в юнити? Или может есть другой скрипт без int
@@ReyKapcher ну, тут год прошёл, поэтому я немного переосмыслил массивы, лучше List использовать - во первых. Во вторых, можно просто залочить все и разлочить один. Я бы сделал класс Reseter, в котором будет список из ResetRule, и при Reset() будет вызываться Reset() объектов из списка. Например, LevelResetRule при вызове Reset() залочит все, а потом разлочит первые 3. Уровни можно передать через конструктор. Так бы сделал я, поэтому это может быть не самым лучшим решением, но меня бы полностью устроило.
Всё круто, но зря начал мудрить с персонажами и всякими триггерами, достаточно было лишь для демонстрации просто сделать сохранение прогресса уровней я считаю
Проектирование далеко не самое лучшее, чесно говоря. В данном случае - вопросов нет: когда у тебя 3 уровня, такая архитектура имеет место быть. Но когда их 100, стоит задуматся. И прикрываться, что это урок для чайников - тоже дело смутное. Учите с самого начала, как делать правильно и качественно.
код по архитектуре не корректен, как ты будешь контролировать если будет 1000 уровней или 5000, ты будешь каждый уровень писать в if и проверять ?? Понятно что твой контент для новичков , но код надо изначально правильно организовывать, а то так и будут недоучки и понимать не будут где косяк . если рассматривать как Unity уроки для детей то вопросов нет
@World War Memes на самом деле там не такая сложная задача как тебе кажется, просто в цикле for есть переменная i по умолчанию и ты можешь с помощью неё проверять каждый уровень. К примеру переменная i номер уровня в цикле и если она будет меньше открытых уровней то уровень будет разблокироваться.
Можно сделать по другому: делаем лист кнопок с уровнем; в переменную типа int из PlayerPrefs берем количество открытых уровней; в методе старт мы делаем цикл от нуля до количества открытых уровней и внутри цикла делаем interactable = true
слушай, я так и сделал только у меня все уровни разблокироваются, а если вместо interactable = true, написать interactable = false, то все уровни кроме первого лочатся, что я делаю не так, можешь помочь?
Помогите с таким вопросом. Вот у меня выбор уровней начинается со 2 сцены. И тоже 3 уровня. И вот если делать по этому примеру, работает всё кроме сохранения уровней. Что мне нужно изменить чтоб уровни сохранялись?
@@graphicaldesign2776 спасибо за ответ. Ну я решил проблему. Сделав уровни не во 2 сцене, а в 1. Тока теперь при нажатие старт меняется картина на уровни, а не на сцену с уровнями😅
Привет, слушай, у меня такая проблема, все сдела как на видео, но когда переходит на следующий уровень, а потом ты переходишь в меню, то уровни не сохраняются, можешь ответить? Изменено: Все работает, я заного сделал кейсы
@@ВикторФедоренко-ж7ь если у вас есть дополнительные сцены, то поменяйте кейсы на сцены, в которых сцены которые вы хотите, т.е цифры. Если у вас сцена например "2" с самой игрой, то указываете в первом кейсе 2
@@ВикторФедоренко-ж7ь возможно у вас как у меня, в скрипте левел контроллер могут быть слова с маленькой, а не с большой буквы Если сделать как надо большой, то всё сохраниься
Подскажи, как сохранить на сцене обьект, который я загрузил из asset bundle. он появляется с пометкой clone и потом исчезает после перезагрузки приложения
Ошибка CS0120 Для нестатического поля, метода или свойства "LevelController.instance" требуется ссылка на объект. что делать с такой ошибкой ошибка тут using System.Collections; using System.Collections.Generic; using UnityEngine; public class NextLevel : MonoBehaviour {
Вопрос я понимаю что ты скорее всего не ответишь, но я постараюсь достучаться "Что делать если после прохождения 3 lvl автоматом Reset нажимается хоть и я этого не хочу?" я код раза 4 пересмотрел.
Полный ужас, всё сделал и уровни рестарт сами делают, кучу времени пытался решить эту проблему, ни чего не помогало. Но вдруг заметил что в скрипте МайнМеню LevelComplete с маленькой буквы,. С*ка. Капец, просто нет слов,. Урок отличный, спасибо.
не сохраняет результат. как быть? что делать?? подскажите пожалуйста, в чем может быть проблема. все кроме первого уровня не доступны. Мне кажется проблемы с switch. Проверьте пожалуйста. levelComplete = PlayerPrefs.GetInt("LevelComplete"); ButtonLevel2.interactable = false; ButtonLevel3.interactable = false; ButtonLevel4.interactable = false; ButtonLevel5.interactable = false; switch (levelComplete) { case 1: ButtonLevel2.interactable = true; break; case 2: ButtonLevel2.interactable = true; ButtonLevel3.interactable = true; break; case 3: ButtonLevel2.interactable = true; ButtonLevel3.interactable = true; ButtonLevel4.interactable = true; break; case 4: ButtonLevel2.interactable = true; ButtonLevel3.interactable = true; ButtonLevel4.interactable = true; ButtonLevel5.interactable = true; break; } } public void LoadTo(int level) { SceneManager.LoadScene(level);
Ты добавил лишнее действие levelComplete = PlayerPrefs.GetInt("LevelComplete"); ButtonLevel2.interactable = false; ButtonLevel3.interactable = false; ButtonLevel4.interactable = false; ButtonLevel5.interactable = false; switch (levelComplete) { case 1: ButtonLevel2.interactable = true; break; case 2: ButtonLevel2.interactable = true; ButtonLevel3.interactable = true; break; case 3:
ButtonLevel3.interactable = true; ButtonLevel4.interactable = true; break; case 4:
ButtonLevel4.interactable = true; ButtonLevel5.interactable = true; break; } } public void LoadTo(int level) { SceneManager.LoadScene(level); PS: пхпхх конечно прошло 3 года уже, но вдруг помог)
@@demonstalker_game_developer Создаешь отдельные скрипты для каждого характеристики и сохраняешь.Купи курсы по этому делу и всё выучи, а то так ты будешь долго мучаться
Graphical Design можно вопрос.А можно ли зделать колайдер и поставить галочку на Trigger и тем самым зделать невидимый колайдер для перехода на следущей уровень?И как это сделать?Прошу помогите!!!!!!!
@@graphicaldesign2776 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using UnityEngine.SceneManagement; public class LevelController : MonoBehaviour { public static LevelController inctance = null; int sceneIndex; int levelComplete; // Start is called before the first frame update void Start() { if (inctance == null) { inctance = this; } sceneIndex = SceneManager.GetActiveScene().buildIndex; levelComplete = PlayerPrefs.GetInt("LevelComplete"); } public void isEndGame() { if (sceneIndex == 5) { Invoke("LoadMainMenu", 1f); } else { if (levelComplete < sceneIndex) PlayerPrefs.SetInt("LevelComplete", sceneIndex); Invoke("NextLevel", 1f); } } void NextLevel() { SceneManager.LoadScene(sceneIndex + 1); } void LoadMainMenu() { SceneManager.LoadScene("MainMenu"); } } using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using UnityEngine.SceneManagement; public class MainMenu : MonoBehaviour { public Button level2; public Button level3; public Button level4; public Button level5; int levelComplete; void Start() { levelComplete = PlayerPrefs.GetInt("LevelComplete"); level2.interactable = false; level3.interactable = false; level4.interactable = false; level5.interactable = false; switch (levelComplete) { case 1: level2.interactable = true; break; case 2: level2.interactable = true; level3.interactable = true; break; case 3: level2.interactable = true; level3.interactable = true; level4.interactable = true; break; case 4: level2.interactable = true; level3.interactable = true; level4.interactable = true; level5.interactable = true; break; } } public void LoadTo(int level) { SceneManager.LoadScene(level); } когда уровень прошёл, новый не открывается((
Привет, мне нравится, только вот... При прохождении уровня кидает в меню, а также при прохождении уровня не открывается след. уровень. В билде сцены добавлены.
Все работает но! У меня не открывается 1-й уровень Изменение: Все работает!! Спасибо!!! Просто первый уровень нужно в build setting поставить под цифру 1
Уже не первый раз твои видео помогают решить мои задачи. Причем это простые решения, доступные начинающим программистам. Спасибо.
Неее :)) ну это уже гайд не о том как сделать сохранение чего либо, а о том, как сделать игру. :) В этом обучающем видео ты сделал мини-игру, которую нужно чуть-чуть допилить и сделать уровни с препятствиями, и игра готова!
Гайд отличный, спасибо большое!
Огромное спасибо, все работает. Достаточно давно смотрю тебя и все время ты меня выручаешь. Спасибо тебе большое за все!)
Видео прям в мою днюху выложил, как раз нужно)
Фух, 4 часа продуктивной работы.
Правда на моменте instate я убил почти час, из-за того что просто не посмотрел видео на секунд 20 дольше 😖. Правда у меня почему-то не сохраняется прогресс🤔, но пожалуй пересмотрю для проверки первую половину в другой день
Спасибо огромное, моей игре именно этого и не хватало!!
Стёпа Мопа моей тоже кста)
Спасибо огромное, у меня игра кликер конечно с разными уровнями, но очень помог
Я просто вместо приватного класса сделал его публичным и добавил на кнопку, чтобы он на нажатие сохранял и всё работает отлично
Спасибо огромное
а как вы сделали чтобы по нажатию сохранялось и переходило на новый уровень?я тоже вместо private сдулал public только не onTrigerEnter2D а Button
Через четыре дня отчаяние...Оно живое!!!
Жаль что стрельба по направлению мыши не так и не получилась, но да ладно!)))
1 минус( с 1 уровень перескакивает на 2 сразу без нажатия клавиш)в чём причина????
А если перезапускать проект в сцене, то изменения сохраняються?
у мнея ошибка в iaEndGame помогите пожалуйста
А если в игре 999 уровней?
Не сохраняет результат
у меня возникла проблема когда в SceneIndex == 3 я пишу == 4 меня не переносит по уровням при этом сцена 4 активна
может в build setting ты не добавил 4 сцену оибо не указал в скрипте что у тебя есть 4 сцена ?
А как сделать кнопку сброса прогреса?
Спасибо за урок, даже на сегодняшний день актуально)
какой-то говнокод. а если 100 лвлов все так вводить?
При создании метода LoadTo вылазит ошибка что его нельзя сделать public
што делать если после уровня захожу в меню а оно не работает
Просто лучший, спасибо огрмное,все просто обьясняяеться а главное все работает. Определенно лайк!!!
!ПОМОГИТЕ!
Пишет:
NullReferenceException: Object reference not set to an instance of an object
NextLevel.OnTriggerEnter (UnityEngine.Collider collider) (at Assets/Scripts/ChooseLV/NextLevel.cs:9)
Что делать?
Вы чего то не вставили в публичную переменную
Cпасибо огромное!
огонь!
Спасибо, просто лучший(Никогда коменты не пишу)
Я хочу сделать 4 уровня как писать в свич
говно
нечего не работает не каких окошек нету иди в жп
Все работает но почему то пройденные уровни не сохраняются что делать ?
Здравствуйте, подскажите а как можно сделать разблокировку следующего уровня, не по тригеру а по нажатию на кнопку?
Вопрос: а хранение большого количества уровней таким способом целесообразно? Если например уровней будет несколько сотен, или даже тысяч, как в игре Fishdom, тогда как?
наверно лучший аккаунт для начинающих разработчиков
Огромная благодарность автору!
1f это 1 секунда а не фрейм
В этом методе есть огромная ошибка.
У меня всего 5 уровней.
Если все 5 уровней открыты и я в сцене уровней выбираю 2-ой, прохожу его и возвращаюсь на сцену с уровнями, то 4 и 5 вновь будут заблокированы.
Спасибо за урок!!! 🦊
Логично, логично, логично, логично...
Спасибо, очень полезньій урок!
Спасибо большое
Спасибо тебе большое за этот ролик! Как раз то, что нужно! :)🙂👍
Работает! спасибо огромное,помогли😀
Привет, а как сделать так чтобы уже пройденые уровеи можно было перепройти, там когда уровень заново проходишь не загружается следующей
Благодарю за урок! :)
А как называется саундтрек который используется вначале и конце видео?
А если у меня не 3 уровня ,а 100 или более? Мне каждый раз писать новый case и добавлять в него один уровень?
то что ты писал в скрипте это мелочи, посмотри лучше на мой скрипт
public Button level2b;
public Button level3b;
public Button level4b;
public Button level5b;
public Button level6b;
public Button level7b;
public Button level8b;
public Button level9b;
public Button level10b;
int levelComlete;
void Start()
{
levelComlete = PlayerPrefs.GetInt("lovelCompare");
level2b.interactable = false;
level3b.interactable = false;
level4b.interactable = false;
level5b.interactable = false;
level6b.interactable = false;
level7b.interactable = false;
level8b.interactable = false;
level9b.interactable = false;
level10b.interactable = false;
switch (levelComlete)
{
case 1:
level2b.interactable = true;
break;
case 2:
level2b.interactable = true;
level3b.interactable = true;
break;
case 3:
level2b.interactable = true;
level3b.interactable = true;
level4b.interactable = true;
break;
case 4:
level2b.interactable = true;
level3b.interactable = true;
level4b.interactable = true;
level5b.interactable = true;
break;
case 5:
level2b.interactable = true;
level3b.interactable = true;
level4b.interactable = true;
level5b.interactable = true;
level6b.interactable = true;
break;
case 6:
level2b.interactable = true;
level3b.interactable = true;
level4b.interactable = true;
level5b.interactable = true;
level6b.interactable = true;
level7b.interactable = true;
break;
case 7:
level2b.interactable = true;
level3b.interactable = true;
level4b.interactable = true;
level5b.interactable = true;
level6b.interactable = true;
level7b.interactable = true;
level8b.interactable = true;
break;
case 8:
level2b.interactable = true;
level3b.interactable = true;
level4b.interactable = true;
level5b.interactable = true;
level6b.interactable = true;
level7b.interactable = true;
level8b.interactable = true;
level9b.interactable = true;
break;
case 9:
level2b.interactable = true;
level3b.interactable = true;
level4b.interactable = true;
level5b.interactable = true;
level6b.interactable = true;
level7b.interactable = true;
level8b.interactable = true;
level9b.interactable = true;
level10b.interactable = true;
break;
}
}
public void LevelTo(int level)
{
SceneManager.LoadScene(level);
}
public void Resert()
{
level2b.interactable = false;
level3b.interactable = false;
level4b.interactable = false;
level5b.interactable = false;
level6b.interactable = false;
level7b.interactable = false;
level8b.interactable = false;
level9b.interactable = false;
level10b.interactable = false;
PlayerPrefs.DeleteAll();
}
}
Не понимаю,как заменить Триггер, на простой клик по объекту, чтобы переключаться на следующий уровень. Помогите, пожалуйста.
Спасибо большое автору !!!
Сделай для 3д
Всё сделал как на видео, но у меня после прохождения следующие уровни не становятся доступными
нашел причину?
@@Alex-cx6ny Ушёл из программирования
Как называется музыка фоновая?
у меня возникли проблемы, если я прохожу первый уровень ивыхожу в меню, то казалось бы всё норм, но если опять зайти в первый уровень, то он не перенесёт тебя на второй после прохождения
а я понял свою ошибку, я Invoke на 15:43 ничайно в функцию if записал
@@sashikshik Я целый час не вдуплял, почему после первого раза оно не работает. Листал комменты в надежде на спасение, оказалось то же самое. Спасибо!
@@Minusgolovushka ахаха круто! Не думал, что найдётся ещё один человек с такой же проблемой)
@@sashikshik моя невнимательность меня в гроб сведёт)))
Что делать если при проверке скрипта юнити пишет что ты не написал использование библиотек для int и interactable, хотя ты написал использование. Можно ли как-то исправить скрипт или загрузить библиотеки в юнити? Или может есть другой скрипт без int
Здравствуйте, у меня лвл сделан так что у меня самолёт летит вверх и убивает противников лазером, как сделать финишную прямую после всех противников?
сделай спрайт финишной прямой (в видео это солнышко) и когда твой самолётик зацепит триггер то что бы кидало на второй лвл
Подскажи как сделать, чтобы открытие уровней происходило по нажатию кнопки. Нажал на кнопку Вышла сценами с уровнями и новый уровень стал активным
Бред(Не работает!
Спасибо большое, а если например пройти 2 уровня, и выйти, а потом обратно в игру зайти то прогресс сохраниться?
Так
Советую делать кнопки через массивы
у меня кнопки объявлены через массивы, но я не понимаю как тогда в Reset указать какие кнопки должны залочится
Можете помочь?
@@ReyKapcher ну, тут год прошёл, поэтому я немного переосмыслил массивы, лучше List использовать - во первых. Во вторых, можно просто залочить все и разлочить один.
Я бы сделал класс Reseter, в котором будет список из ResetRule, и при Reset() будет вызываться Reset() объектов из списка. Например, LevelResetRule при вызове Reset() залочит все, а потом разлочит первые 3. Уровни можно передать через конструктор. Так бы сделал я, поэтому это может быть не самым лучшим решением, но меня бы полностью устроило.
@@khodis2002 понятно, спасибо
Оу еее, юнити энджАЙн
Всё круто, но зря начал мудрить с персонажами и всякими триггерами, достаточно было лишь для демонстрации просто сделать сохранение прогресса уровней я считаю
А если 100 уровней?)
А можно сделать код без английского языка? Просто я не знаю английский язык. Можно или нет?
нельзя хахаха, сорян но насколько я знаю то ВСЕ языки программирования на английском языке и C# не исключение.
Проектирование далеко не самое лучшее, чесно говоря. В данном случае - вопросов нет: когда у тебя 3 уровня, такая архитектура имеет место быть. Но когда их 100, стоит задуматся. И прикрываться, что это урок для чайников - тоже дело смутное. Учите с самого начала, как делать правильно и качественно.
А как правильно? Где посмотреть? Ютуб полон таких вот поделок дилетантов, а хороших решений не найти.
@@aleksey2793 Это проблема любой темы. Как правило спасает англоязычные ресурсы. Там всегда больше информации и уровнем она повыше.
Всё ясно и понятно объяснил, бро)
Спасибо большое, очень помог.
огромное спасибо за это видио.оно сильно улучшило мой проект!
код по архитектуре не корректен, как ты будешь контролировать если будет 1000 уровней или 5000, ты будешь каждый уровень писать в if и проверять ?? Понятно что твой контент для новичков , но код надо изначально правильно организовывать, а то так и будут недоучки и понимать не будут где косяк . если рассматривать как Unity уроки для детей то вопросов нет
А как это лучше сделать
@@ТатьянаТкач-о6п через цикл for проверять.
Логично
@World War Memes на самом деле там не такая сложная задача как тебе кажется, просто в цикле for есть переменная i по умолчанию и ты можешь с помощью неё проверять каждый уровень. К примеру переменная i номер уровня в цикле и если она будет меньше открытых уровней то уровень будет разблокироваться.
@@unitycraftzone5888 А можно об этом поподробнее если не сложно? Как именно прописывать код что бы уровни разблокировались постепенно?
Error CS0117: `LevelController' does not contain for `instance'
Как исправить?
Добавь в классе MainMenu свойство public static MainMenu instance = null; а в функцию старт добавь условие
if (instance == null) { instance = this;}
всё работает крут вчера наверно чтот не так сделал спасибо огромно
Большое спасибо за урок!
Странно! Вроде все зделал как на видео но все равно не работает😭. Ошибки не выдаёт
Можно сделать по другому: делаем лист кнопок с уровнем; в переменную типа int из PlayerPrefs берем количество открытых уровней; в методе старт мы делаем цикл от нуля до количества открытых уровней и внутри цикла делаем interactable = true
слушай, я так и сделал только у меня все уровни разблокироваются, а если вместо interactable = true, написать interactable = false, то все уровни кроме первого лочатся, что я делаю не так, можешь помочь?
ОЧЕНЬ ПОЛЕЗНЫЕ ВИДЕО!!!)
Подскажите почему уменя такие большие кнопки делал все не получается менял размер, т тоже не получается, что делать?
Помогите с таким вопросом.
Вот у меня выбор уровней начинается со 2 сцены.
И тоже 3 уровня.
И вот если делать по этому примеру, работает всё кроме сохранения уровней.
Что мне нужно изменить чтоб уровни сохранялись?
Должно работать. Значит что-то делаешь не так.
@@graphicaldesign2776 спасибо за ответ.
Ну я решил проблему.
Сделав уровни не во 2 сцене, а в 1.
Тока теперь при нажатие старт меняется картина на уровни, а не на сцену с уровнями😅
Привет, можешь сделать видео по стрельбе, со слежением(поворотом) оружия за курсором мыши?
окей
@@graphicaldesign2776 не, ну это лайк, подписка, колокольчик с ещё одного аккаунта)
Привет, слушай, у меня такая проблема, все сдела как на видео, но когда переходит на следующий уровень, а потом ты переходишь в меню, то уровни не сохраняются, можешь ответить?
Изменено: Все работает, я заного сделал кейсы
А как ты решил эту проблему?
+
@@ВикторФедоренко-ж7ь если у вас есть дополнительные сцены, то поменяйте кейсы на сцены, в которых сцены которые вы хотите, т.е цифры.
Если у вас сцена например "2" с самой игрой, то указываете в первом кейсе 2
@@ВикторФедоренко-ж7ь возможно у вас как у меня, в скрипте левел контроллер могут быть слова с маленькой, а не с большой буквы
Если сделать как надо большой, то всё сохраниься
@@RivaKing я уже решил проблему, но вы правы у меня тоже с маленькой буквы было написано.
привет ещё раз, скажи пожалуйста я прописал
if (instance == null)
{
instance = this;
}
но так же меня не переносит на следующий уровень почему?
Сцену с первым уровнем в билд сетингс перенеси на цыфру 1
Ей парень спасибо за видос как и всегда спас мою проблемную жопу,лайкос)
почему OnTriggerEnter2D не работает?
Все работает, но когда прохожу последний у меня открыт только 1 уровень
открывай уровни после прохождения и загружай открытые уровни в старте
@@omoloni всмысле? Не очень понял
Разобрался? У меня такая же проблема
@@бебранюх-и3р нет, не разобрался.
@@бебранюх-и3р когда проходишь уровень, то сразу открывай следующий и сохраняй в плеер префс, а в меню каждый раз загружай из плеер префс
Подскажи, как сохранить на сцене обьект, который я загрузил из asset bundle. он появляется с пометкой clone и потом исчезает после перезагрузки приложения
Ошибка CS0120 Для нестатического поля, метода или свойства "LevelController.instance" требуется ссылка на объект.
что делать с такой ошибкой
ошибка тут
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class NextLevel : MonoBehaviour
{
private void OnTriggerEnter2D(Collider2D collision)
{
LevelController.instance.isEndGame();
}
}
У меня также, решил проблему?
@@no_more_dusty_trip мог бы ещё годик подождать и написать
@@kelni Блин просто очень нужно
Вопрос я понимаю что ты скорее всего не ответишь, но я постараюсь достучаться "Что делать если после прохождения 3 lvl автоматом Reset нажимается хоть и я этого не хочу?" я код раза 4 пересмотрел.
что-то сделал не так
Привет, ты решение нашел? А то у меня чёт тоже такая фигня.
Сильно все усложненно...можно сделать всё намного проще...если у меня сто уровней например...я с ума сойду пока все сделаю по вашему методу
Ты дурак?просто скопируй case 1 и цыфры меняй на case два и цыфры кнопок уровней.И все.
Нет ты дурак!Скрипт для того что бы все выполнять автоматом а не каждый раз это делать ручками.
@@FreeCoinsChannel Да,с тобой тоже все понятно.
@@kitkyte7126 в очередной раз убеждаюсь что в интернете очень много неадекватов
@@FreeCoinsChannel ну да таких как ты.
Полный ужас, всё сделал и уровни рестарт сами делают, кучу времени пытался решить эту проблему, ни чего не помогало. Но вдруг заметил что в скрипте МайнМеню LevelComplete с маленькой буквы,. С*ка. Капец, просто нет слов,. Урок отличный, спасибо.
Спасибо я без тебя бы долго мучился
Где именно?
Привет, подскажи, пожалуйста, из-за чего кнопки не переносятся в окошки уровней.
Привет, вопрос такой, при переходе на второй уровень и выходе из него, открываются и остальные уровни, в чем может быть проблема?
Добрый день. Если я прошёл 2 уровня и допустим хочу не проходить 3 ,а пройти 2 опять как так сделать?
Поставить перезагрузку текущего уровня
@@graphicaldesign2776 Чет оно не работает,если не сложно напиши по подробнее.
@@graphicaldesign2776 а как это сделать?
Можно скрипт? у меня не кнопки у меня картинки с box collider и скрипт тип если нажал переносит на такую сцену
Супер!
не сохраняет результат. как быть? что делать?? подскажите пожалуйста, в чем может быть проблема. все кроме первого уровня не доступны. Мне кажется проблемы с switch. Проверьте пожалуйста.
levelComplete = PlayerPrefs.GetInt("LevelComplete");
ButtonLevel2.interactable = false;
ButtonLevel3.interactable = false;
ButtonLevel4.interactable = false;
ButtonLevel5.interactable = false;
switch (levelComplete)
{
case 1:
ButtonLevel2.interactable = true;
break;
case 2:
ButtonLevel2.interactable = true;
ButtonLevel3.interactable = true;
break;
case 3:
ButtonLevel2.interactable = true;
ButtonLevel3.interactable = true;
ButtonLevel4.interactable = true;
break;
case 4:
ButtonLevel2.interactable = true;
ButtonLevel3.interactable = true;
ButtonLevel4.interactable = true;
ButtonLevel5.interactable = true;
break;
}
}
public void LoadTo(int level)
{
SceneManager.LoadScene(level);
слишком много кейсов, либо удаляешь НАФИГ проект, либо убераешь кейсы
Проект не удаляй проблема в скриптах
Ты добавил лишнее действие
levelComplete = PlayerPrefs.GetInt("LevelComplete");
ButtonLevel2.interactable = false;
ButtonLevel3.interactable = false;
ButtonLevel4.interactable = false;
ButtonLevel5.interactable = false;
switch (levelComplete)
{
case 1:
ButtonLevel2.interactable = true;
break;
case 2:
ButtonLevel2.interactable = true;
ButtonLevel3.interactable = true;
break;
case 3:
ButtonLevel3.interactable = true;
ButtonLevel4.interactable = true;
break;
case 4:
ButtonLevel4.interactable = true;
ButtonLevel5.interactable = true;
break;
}
}
public void LoadTo(int level)
{
SceneManager.LoadScene(level);
PS: пхпхх конечно прошло 3 года уже, но вдруг помог)
Уровни не сохраняются,если перезапустить игру на телефоне,как решить проблему?
Такая же проблема
@@hakerrulit5824 @@hakerrulit5824 помогу,Создаёшь Void OnApplicationQuit() { и сюда пишешь PlayerPrefs.SetInt("LevelComplete", sceneindex);
}
@@tomizz4406 Спасибо, надеюсь поможет
@@tomizz4406 всё равно не сохраняет(
Добрый день, у меня есть проблема, 1 уровень ничинает 2 через 3 секунды
Здравствуйте! А можно сделать видео, где подробно рассказать про Save?
demonstalker show что значит «подробно»?
@@graphicaldesign2776 Я имел ввиду, как полностью сохранять весь процесс игры, включая характеристики игрока, деньги и т.д. И как потом это загружать!
@@demonstalker_game_developer Создаешь отдельные скрипты для каждого характеристики и сохраняешь.Купи курсы по этому делу и всё выучи, а то так ты будешь долго мучаться
@@demonstalker_game_developer на канале есть видео посмотри (у Автора а не у меня)
Супер, помогают видосы, подписка и лайк
А можно как нибудь сделать так, чтобы в при переходе, допустим, на новую главу менялся фон?
@@DL_Tech Если честно я уже сам не очень помню по поводу чего был задан мной данный вопрос)
Graphical Design можно вопрос.А можно ли зделать колайдер и поставить галочку на Trigger и тем самым зделать невидимый колайдер для перехода на следущей уровень?И как это сделать?Прошу помогите!!!!!!!
Перенеси по слоям, он будет работать, но его не будет видно, можешь использовать Sorting слои
@@cuver5595 спасибо я уже давно все сделал но спасибо что ответил
сделал всё также, ошибка Trying to Invoke method: LevelController.LoadMainMenu couldn't be called. Подскажи пожалуйста, что делать
Проверить еще раз скрипт, пишет, что нет доступа к вызова именно загрузки меню
@@graphicaldesign2776 я нашёл ошибку, я написал OnMainMenu, вместо LoadMainMenu
Отлично)
@@graphicaldesign2776 using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
public class LevelController : MonoBehaviour
{
public static LevelController inctance = null;
int sceneIndex;
int levelComplete;
// Start is called before the first frame update
void Start()
{
if (inctance == null)
{
inctance = this;
}
sceneIndex = SceneManager.GetActiveScene().buildIndex;
levelComplete = PlayerPrefs.GetInt("LevelComplete");
}
public void isEndGame()
{
if (sceneIndex == 5)
{
Invoke("LoadMainMenu", 1f);
}
else
{
if (levelComplete < sceneIndex)
PlayerPrefs.SetInt("LevelComplete", sceneIndex);
Invoke("NextLevel", 1f);
}
}
void NextLevel()
{
SceneManager.LoadScene(sceneIndex + 1);
}
void LoadMainMenu()
{
SceneManager.LoadScene("MainMenu");
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
public class MainMenu : MonoBehaviour
{
public Button level2;
public Button level3;
public Button level4;
public Button level5;
int levelComplete;
void Start()
{
levelComplete = PlayerPrefs.GetInt("LevelComplete");
level2.interactable = false;
level3.interactable = false;
level4.interactable = false;
level5.interactable = false;
switch (levelComplete)
{
case 1:
level2.interactable = true;
break;
case 2:
level2.interactable = true;
level3.interactable = true;
break;
case 3:
level2.interactable = true;
level3.interactable = true;
level4.interactable = true;
break;
case 4:
level2.interactable = true;
level3.interactable = true;
level4.interactable = true;
level5.interactable = true;
break;
}
}
public void LoadTo(int level)
{
SceneManager.LoadScene(level);
}
когда уровень прошёл, новый не открывается((
Спасибо, Бро! Шикарный урок! Не забудь доделать видео про ИНВЕНТАРЬ(подбор/сброс предметов Персонажем)!!!!! ^_^
Что ты тут делаешь? Вот тебя я точно не ожидал здесь увидеть!
@@Semga Мне интересно, как люди делают игры. Я смотрю такие видео. Может, когда-нибудь, сделаю свою игру...но не факт :)
@@YOURREST я вот уже вроде второй месяц этому учусь)
Привет, мне нравится, только вот... При прохождении уровня кидает в меню, а также при прохождении уровня не открывается след. уровень. В билде сцены добавлены.
Так, при прохождении уровня кидает на след лвл, но в меню они заблокированы всё равно, что делать?
Assets\script
extLevel.cs(9,34): error CS0122: 'LevelController.isEndGame()' is inaccessible due to its protection level мод кажи що робити
С чем?
Воно каже що нема isEndGame в nextLevel
у меня не получилось я прошло 3 уровня но ничего не открылось
у меня такая же шурара, если решил проблему можешь подсказать где ошибка?
@@Volcano_channel привет решил проблему?
@@konstantinmelnik7309 не
Все работает но! У меня не открывается 1-й уровень
Изменение:
Все работает!! Спасибо!!! Просто первый уровень нужно в build setting поставить под цифру 1
Хух спс за решение было тоже самое