Передача данных между сценами

Программирование на Юнити.

Передача данных между сценами

Сообщение ziat 03 дек 2009, 15:45

Вопрос такого плана.
Как передать значения переменных между сценами?
ТОлько через сохранение на диске в конце одной сцены и загрузку из другой?
ziat
UNITрон
 
Сообщения: 199
Зарегистрирован: 07 окт 2009, 21:28
  • Сайт

Re: Передача данных между сценами

Сообщение Avatarchik 03 дек 2009, 15:50

Можно в одной сцене сделать скрипт со static переменной например public static int test;
А в другой сцене читать эту переменную nameScript.test
Добавить ava-karaban в Skype
Аватара пользователя
Avatarchik
UNITрон
 
Сообщения: 274
Зарегистрирован: 04 апр 2009, 15:36
Откуда: Украина(Донецк)
  • ICQ

Re: Передача данных между сценами

Сообщение Neodrop 03 дек 2009, 16:35

Делаем объект. Веаем на него скрипт, сохраняющий передаваемые данные. В нём пишем : DontDestroyOnLoad (this);
Всё. Этот объект сохранится во всех сценах. Главное, чтобы он висел в первой, чтобы его перенесло в следующие.
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Передача данных между сценами

Сообщение vovkalexey 24 апр 2012, 22:42

Вот удачный простой пример (видео) того о чем говорит NeoDrop: http://cgcookie.com/unity/2012/04/23/lu ... tant-data/
Аватара пользователя
vovkalexey
UNец
 
Сообщения: 17
Зарегистрирован: 20 дек 2011, 15:09
Откуда: Украина
Skype: vovkalexey
  • Сайт
  • ICQ

Re: Передача данных между сценами

Сообщение Guyver 25 апр 2012, 07:50

мой ответ в конце: viewtopic.php?f=105&t=8615
Xcombat: 3D шутер на летающих тарелках!
Аватара пользователя
Guyver
UNIверсал
 
Сообщения: 392
Зарегистрирован: 21 июл 2010, 08:04
Откуда: Челябинск

Re: Передача данных между сценами

Сообщение Woolf 25 апр 2012, 09:59

А почему все забывают про статик классы? Это же проще, чем создавать пустые ГО, которые, кстати, хоть на чуть-чуть, а снижают производительность. Если не нравится статик, делаем классический инстанс:

Синтаксис:
Используется csharp
class RoomManager
{
   
    public static RoomManager Inst= new RoomManager();

  //Данные
   public float foo1=0;
   public float foo2=0;
}
.......
//Обращаемся ИЗ ЛЮБОГО ОБЪЕКТА И ЛЮБОЙ СЦЕНЫ
RoomManager.Inst.foo1=5f;


Естественно, данный объект может быть только один в проекте.
Разработчик theFisherOnline - там, где клюёт
Разработчик Atom Fishing II - Первая 3D MMO про рыбалку
Разработчик Atom Fishing - Рыбалка на поплавок, донку, нахлыст, блесну в постъядерный период.
Аватара пользователя
Woolf
Адепт
 
Сообщения: 7179
Зарегистрирован: 02 мар 2009, 16:59

Re: Передача данных между сценами

Сообщение seaman 25 апр 2012, 10:59

Естественно, данный объект может быть только один в проекте.

Ну тогда нужно нормальный синглтон делать, тогда он автоматом будет один в проекте:
Синтаксис:
Используется csharp
class InputManager : Manager
{
    #region Singleton
         static InputManager(){}
         private static readonly Manager _instance = new InputManager();
         public static Manager Instance{ get { return _instance; } }
    #endregion
...
   public float myVar;
}

Обращаемся:
Синтаксис:
Используется csharp
InputManager.Instance.myVar = 0.0f;
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Передача данных между сценами

Сообщение Guyver 25 апр 2012, 12:05

как я понимаю .. в приведённом мной примере, вся магия происходит вокруг наследия от монобеха.

разумеется там можно намутить всякого рода апдейты онгуи и чёрта лысого ... а обращаться к такому обьекту из проекта удобно и не нада искать там что то по сцене .. или запоминать на него указатель .. он сам помнит.

разумеется классический синглтон тоже имеет право на существование.

это скажем адаптация классического синглтона под реалии юнити пайплайна.
Xcombat: 3D шутер на летающих тарелках!
Аватара пользователя
Guyver
UNIверсал
 
Сообщения: 392
Зарегистрирован: 21 июл 2010, 08:04
Откуда: Челябинск

Re: Передача данных между сценами

Сообщение Hargrim 25 апр 2012, 16:43

А почему все забывают про статик классы? Это же проще, чем создавать пустые ГО, которые, кстати, хоть на чуть-чуть, а снижают производительность. Если не нравится статик, делаем классический инстанс

А как без объекта стартануть скрипт? Или речь о собственной библиотеке? Не могли бы прояснить этот момент?
Hargrim
 

Re: Передача данных между сценами

Сообщение seaman 25 апр 2012, 18:15

А как без объекта стартануть скрипт?

А Вы вообще знакомы со статик классами? Нет - почитайте!
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Передача данных между сценами

Сообщение Hargrim 25 апр 2012, 20:59

А Вы вообще знакомы со статик классами? Нет - почитайте!

Как же на форумах любят окунать людей в нечистоты, даже не разобравшись в сути вопроса. Ну да ладно, когда-нибудь привыкну.

Отвечая на Ваш вопрос - да, уважаемый, я прекрасно знаком со статическими классами. Беда в том, что я НЕ прекрасно знаком с Unity3d. Поэтому и набрался храбрости задать вопрос. И из того что я смог понять, это то, что все файлы содержащие код, должны для исполнения крепиться к созданным в Unity3d объектам, будь то пустышка или высокодетализированная модель суперпупер чего-то там (т.е. имелись в виду НЕ объекты, являющиеся представителями написанных нами с Вами НЕстатических классов). Т.е. написал я статик класс, что с ним делать дальше, если это просто файлик, никак не отраженный в иерархии сцены?
Hargrim
 

Re: Передача данных между сценами

Сообщение Zaicheg 25 апр 2012, 21:06

Gonzik писал(а):все файлы содержащие код, должны для исполнения крепиться к созданным в Unity3d объектам, будь то пустышка или высокодетализированная модель суперпупер чего-то там (т.е. имелись в виду НЕ объекты, являющиеся представителями написанных нами с Вами НЕстатических классов)

Нет, не должны.
Дьяченко Роман
e-mail: _zaicheg.reg@gmail.com
skype: zaicheg12
vkontakte: _vk.com/zaichegq
Работа: _wie3.com _www.sanviz.com
Аватара пользователя
Zaicheg
Адепт
 
Сообщения: 3024
Зарегистрирован: 19 июн 2009, 15:12
Откуда: Череповец

Re: Передача данных между сценами

Сообщение Hargrim 26 апр 2012, 09:36

Нет, не должны.

Так это ж полностью меняет дело. Спасибо за просвещение!
Hargrim
 

Re: Передача данных между сценами

Сообщение AndreyMust19 26 апр 2012, 11:41

К объектам в виде компонентов могут крепиться только те скрипты, к-е описывают класс, унаследованный от MonoBehaviour. Все остальные ваши классы работают как обычные классы платформы .NET (только имеющие стороннюю реализацию).
Нужна помощь? Сами, сами, сами, сами, сами... делаем все сами
AndreyMust19
Адепт
 
Сообщения: 1119
Зарегистрирован: 07 июн 2011, 13:19

Re: Передача данных между сценами

Сообщение headfucker 17 июн 2015, 21:17

Можно использовать PlayerPrefs. Это сохранение какого-либо параметра на всю игру, в параметр загоняешь название сцены и при переходе на другую читаешь этот параметр. Если (он == "сцена1") { появись здесь } или через свич, как удобно будет.
headfucker
UNец
 
Сообщения: 26
Зарегистрирован: 20 фев 2014, 11:59

След.

Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 10