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

Перенос переменной на новую сцену

05.06.2018, 20:35. Показов 8885. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как перенести переменную с одной сцены на другу. Например на первой сцене есть поле ввода имени, в итоге получаем переменную
C++
1
login = vasya;
Нажимаем enter, переходим на новую сцену. Как теперь получить в новой сцене это имея в переменной, что бы присвоить персонажу?

Пробовал делать так: На первой сцене записывал статическую переменную и присваивал ей значение:
C++
1
2
3
    
public static int name;
name = vasya;
А на следующий сцене пытаюсь ее получить таким образом
C++
1
2
name = login.name;
// (новая_переменная = имя_скрипта.имя_переменной)
Получаю 2 ошибки name и login не существует в текущем контексте.

Что я делаю не так?

Добавлено через 10 минут
Ну name я видимо просто забыл объявить в скрипте на второй сцене, а login - это ведь имя скрипта из с которого я беру статическую переменную. или он тоже как то объявляться должен?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.06.2018, 20:35
Ответы с готовыми решениями:

Перенос куска UI в другую сцену
Хоть убейте, но не могу никак понять, как перенести кусок от ЮИ из сцены в сцену. Пробовал через DontDestroyOnLoad, ругается, что не должно...

Перенос AD на новую ОС
Есть сервер с ОС Windows Server 2008 Enterprise (работает), купил для этого сервере SSD. Хочу на новый диск установить чистую ОС,...

Перенос на новую запись
Подскажите, как сделать чтоб при открытии формы были видны все записи, но и можно было ввести сразу новую запись, нужен код процедуры...

8
 Аватар для 1Dmitru1
5 / 5 / 2
Регистрация: 08.12.2017
Сообщений: 66
05.06.2018, 22:08
Почему код на C++?))
Делаешь в Start или Awake

C#
1
2
3
4
void Awake()
{
  DontDestroyOnLoad(gameObject);
}
0
2 / 2 / 1
Регистрация: 09.05.2018
Сообщений: 64
05.06.2018, 23:07  [ТС]
Ошибся, не туда кликнул, код на C#
А это имеет значение?
name = login.name; - прописывал в start.
Нужно в Awake ?
0
29 / 27 / 9
Регистрация: 10.08.2016
Сообщений: 163
06.06.2018, 06:43
можно например передать значение переменной которую хочешь перенести на другую сцену в глобальный класс
создаешь отдельный скрипт не привязанный к MonoBehaviour и передаешь значения в переменные этого глобального класса
в другой сцене уже получаешь эти значения от туда
0
136 / 131 / 43
Регистрация: 07.11.2017
Сообщений: 553
06.06.2018, 09:12
для простых нужд используйте
PlayerPrefs
записать переменную
PlayerPrefs.SetString(string key, string value);
пример
C#
1
PlayerPrefs.SetString("Name", m_PlayerName);
забрать переменную
C#
1
string namePlayer = PlayerPrefs.GetString("Name");
если почитать доку то там можно и другие значения запоминать.
ссылочка выше.
1
2 / 2 / 1
Регистрация: 09.05.2018
Сообщений: 64
06.06.2018, 12:04  [ТС]
Еще бы понять как это все реализовать
А способом описанным в самой теме этого сделать нельзя?
Или если можно по подробнее опишите? Куда этот скрипт вешать и как к нему потом подключаться? Какой класс использовать вместо MonoBehaviour ?
0
29 / 27 / 9
Регистрация: 10.08.2016
Сообщений: 163
06.06.2018, 12:40
ну вот тут например я создал простой public Class, сделал [System.Serializable] и собственно не куда его не вешал, обратится к нему можно в не зависимости в какой сцене вы находитесь, что я и делал
пример очень старый

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
[System.Serializable]
public class Item {
    
    public int itemID;
    public string itemName;
    public string itemDesc;
    public int itemPower;
 
    //конструктор для базы данных итемов
    public Item(int id, string name, string desc, int power, float range, float cooldown, float delay, int effect, string particleName)
    {
                   //тут конструктор
    }
}
0
2 / 2 / 1
Регистрация: 09.05.2018
Сообщений: 64
06.06.2018, 12:46  [ТС]
То есть назначаешь тут переменные, потом в любом другом скрипте можно получить их значения таким вот способом?
новая_переменная = имя_скрипта.имя_переменной; ?
или как получить в каком то другом скрипте например значение itemName или itemPower?
0
29 / 27 / 9
Регистрация: 10.08.2016
Сообщений: 163
06.06.2018, 13:32
ну тут конкретно я юзал Item для конструктора
а вообще можно сослаться

C#
1
2
3
4
5
6
7
Item item;
Int power;
 
void Start()
{
   power = item.itemPower
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.06.2018, 13:32
Помогаю со студенческими работами здесь

Перенос на новую строку
Как перенести на новую строку слова ЗАГЛАВНЫМИ БУКВАМИ? Я спецом выделил что надо перенести. Желательно через "Поиск и...

перенос на новую строку
у меня есть функция, который выводит от 5 до 30 слов из текста function getText() { var text = ; var k = Math.random() * (30...

Перенос на новую строку VS C++
Здравствуйте возник такой вопрос.я взял ячейку из таблицы и присвоил к ней переменную чтобы потом вывести в label. А так как текст ячейки...

Перенос на новую строку
Каким образом в Rave Designer ( в отчете) можно перенести слово на новую строку? То есть: есть столбик с названием "Табельный...

Перенос на новую строку
Всем привет. Есть блок,в котором находится большое количество символов. Как сделать,чтобы эти символы были только внутри блока? У меня...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru