Форум программистов, компьютерный форум, киберфорум
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/40: Рейтинг темы: голосов - 40, средняя оценка - 4.55
1 / 1 / 0
Регистрация: 08.05.2019
Сообщений: 35

Загрузка сцены, на которой завершилась игра

13.07.2019, 11:53. Показов 8695. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Каким методом можно реализовать загрузку сцены?
Есть игра, в ней 50 сцен. Нужно чтобы после выхода из игры, номер сцены сохранялся, и при повторном запуске игры, она открывала эту сцену.
https://docs.unity3d.com/Scrip... Scene.html - возможно нужно использовать этот метод или через сохранение в PlayerPreafabs? Заранее спасибо
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.07.2019, 11:53
Ответы с готовыми решениями:

Игра начинается не с той сцены
Я создал игру как школьный проект по урокам из интернета, было сделано 2 сцены это сама игра и меню, но почему то при запуске...

Повторная загрузка сцены
Добрый день. Клиент. Есть стартовая сцена. На ней меню. Один из объектов в иерархии - пустой объект с логикой сети. При подключении всех...

Игра в консоли - вопрос скорости прорисовки сцены
Мне надо создать небольшую игру в консоли на VB.NET (2010). Когда я пытаюсь сначала очищать консоль, потом выводить символы, а потом делать...

8
 Аватар для samana
2639 / 1567 / 853
Регистрация: 23.02.2019
Сообщений: 3,876
13.07.2019, 12:13
Для загрузки сцены во время игры, нужно использовать https://docs.unity3d.com/Scrip... Scene.html. А как хранить индекс или имя текущей последней сцены решать вам, можно конечно и через playerPrefs попробовать.
0
1 / 1 / 0
Регистрация: 08.05.2019
Сообщений: 35
13.07.2019, 12:34  [ТС]
samana,
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
using System.Collections;
using UnityEngine;
using System.Collections.Generic;
using UnityEngine.SceneManagement;
 
public class LoadManager : MonoBehaviour
{   
     private void Start() 
     {
      if (!PlayerPrefs.HasKey("Level")) SceneManager.LoadScene(0);
      else SceneManager.LoadScene("Level");   
     }
     public void CheckLevel(string level)
     {
         PlayerPrefs.SetInt("Level", int.Parse(level = SceneManager.GetActiveScene().buildIndex;));
     }
}
Написал скрипт. В последней строке не понимаю как приравнять индекс к нужному параметру
0
 Аватар для 1max1
3362 / 1775 / 1028
Регистрация: 26.10.2018
Сообщений: 5,204
13.07.2019, 15:15
C#
1
2
3
4
5
6
7
8
9
     void Start() 
     {
         SceneManager.LoadScene(PlayerPrefs.GetInt("Level", 0);   
     }
 
     public void SaveLevel()
     {
         PlayerPrefs.SetInt("Level", SceneManager.GetActiveScene().buildIndex);
     }
1
1 / 1 / 0
Регистрация: 08.05.2019
Сообщений: 35
15.07.2019, 12:38  [ТС]
1max1, Теперь при запуске игры, постоянно загружает и перезагружает первую сцену. Я даже ни как не могу взаимодействовать с игрой. С чем это может быть связано?
0
 Аватар для 1max1
3362 / 1775 / 1028
Регистрация: 26.10.2018
Сообщений: 5,204
15.07.2019, 12:43
Лучший ответ Сообщение было отмечено KodderNew как решение

Решение

Объект, на котором висит скрипт находится на этой сцене. Сделай загрузку не в старте, а по нажатию на кнопку к примеру, или делай проверку:
C#
1
2
if (SceneManager.GetActiveScene().buildIndex != PlayerPrefs.GetInt("Level", 0))
    SceneManager.LoadScene(PlayerPrefs.GetInt("Level", 0);
1
1 / 1 / 0
Регистрация: 08.05.2019
Сообщений: 35
15.07.2019, 13:12  [ТС]
1max1, Теперь при переходе на следующую сцену, он грузит первую сцену всегда. Думал дело в коде, его поменял немного
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
using System.Collections;
using UnityEngine;
using System.Collections.Generic;
using UnityEngine.SceneManagement;
 
public class LoadManager : MonoBehaviour
{   
    int SaveI;
  void Start() 
     {
         if (SceneManager.GetActiveScene().buildIndex != PlayerPrefs.GetInt("Level", 0))
         SceneManager.LoadScene(PlayerPrefs.GetInt("Level", SaveI));   
     }
 
     public void SaveLevel()
     {  
         PlayerPrefs.SetInt("Level", SaveI = SceneManager.GetActiveScene().buildIndex);
     }
}
Добавлено через 1 минуту
Я же всё правильно понял? 11 строка кода проверяет на какой сцене я нахожусь. 12 загружает сохранение. А 18 сохраняет номер сцены, перезаписывает SaveI
0
 Аватар для 1max1
3362 / 1775 / 1028
Регистрация: 26.10.2018
Сообщений: 5,204
15.07.2019, 18:09
LoadManager у тебя в каждой сцене что-ли? Сделай его только в 0-ой сцене.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class LoadManager : MonoBehaviour
{   
     void Start() 
     {
         int id = PlayerPrefs.GetInt("Level", 0);
         if (id != 0)
             SceneManager.LoadScene(id);   
     }
 
     public void SaveLevel()
     {  
         PlayerPrefs.SetInt("Level", SceneManager.GetActiveScene().buildIndex);
     }
}
1
1 / 1 / 0
Регистрация: 08.05.2019
Сообщений: 35
18.07.2019, 11:59  [ТС]
Воспользовался другим скриптом. На 0-ой сцене оставил данный скрипт.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
using UnityEngine;
using UnityEngine.SceneManagement;
 
public class LoadManager : MonoBehaviour
{   
     void Start() 
     {  if (PlayerPrefs.GetInt ("Level") == 0)
      {
       PlayerPrefs.SetInt ("Level", 0); 
      }
       SceneManager.LoadScene(PlayerPrefs.GetInt ("Level"));
   
     }
 
}
А на всех других сценах добавил этот скрипт
C#
1
2
3
4
5
6
7
public class SaveLevel : MonoBehaviour
{
    void OnApplicationQuit()
     {
       PlayerPrefs.SetInt ("Level", SceneManager.GetActiveScene().buildIndex);
     }
}
После этого всё заработало
1max1, Спасибо за помощь
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.07.2019, 11:59
Помогаю со студенческими работами здесь

Загрузка компонентов сцены через скрипт cs
как загруззить компоненты сцены серез скрипт C#? и еще как проставить коллайдеры через скрипт C#?

Загрузка сцены в начале игры, но её отсутствие в следующей загрузке
( Unity) Допустим у меня есть несколько сцен,одна является игровой,а другая как бы обучающей.Как осуществить загрузку при запуске...

Что нужно сделать что бы запускалась флеш-игра (разбитай на сцены) на странице сайта?
Здравствуйте Игра SWF к ней есть спрайты или сцены, лежат в папке parts не имеют расширения. Загрузил на сайт SWF и папку parts со...

Игра, в которой нужно искать отличия в картинках
ребята подскажите мне как написать игру что бы на 2 картинках было 6 или более отличий отгадывало!!!

Классическая игра-головоломка, в которой пользователь разгадывает слова
Возникла проблема с кодом в висуал студио. Пишу по книге Доусон Майкл Изучаем программирование на С++ через создание игр Глава 3...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru