Форум программистов, компьютерный форум, киберфорум
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/34: Рейтинг темы: голосов - 34, средняя оценка - 4.85
 Аватар для Kraken73
105 / 93 / 50
Регистрация: 17.09.2015
Сообщений: 612

Переменная в другую сцену(и спрайт)

20.06.2016, 16:26. Показов 6931. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Есть 2 сцены. 1-ая с кнопками где выбираешь level, и вторая - игровая сцена. Как можно при клике на 1 кнопку передать число "1", при клике на 2-ую "2" и т.д.? У меня есть начало идеи, но потом что-то не понимаю как сделать ._.
На каждую кнопку повесить скрипт, в нем прописать типо такого
C#
1
public int level;
и в инспекторе значение задать. И тут встает вопрос, как передать значение именно с нажатой кнопки в другую сцену? Читал про dontdestroyonload, но так и не понял, что да как.

и 2-ой вопрос)
В бд хранится имя спрайта для уровней
C#
1
2
3
public GameObject img; 
...
img.GetComponent<Image>().sprite = reader[4].ToString; // пытаюсь изменить спрайт
но выходит ошибка, Cannot convert method group `ToString' to non-delegate type `UnityEngine.Sprite'. Consider using parentheses to invoke the method
Как это правильно сделать?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.06.2016, 16:26
Ответы с готовыми решениями:

Переход на другую сцену
Вся моя проблема, что поиском пользоваться не умею. Наверняка ответ где-то ранее уже был по данному вопросу. А суть вопроса вот в чём. ...

Переход на другую сцену
При переходе со сцены на вторую сцену использую обычный скрипт: public GameObject Personage; public string SceneName; void...

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

6
211 / 201 / 63
Регистрация: 24.09.2014
Сообщений: 532
20.06.2016, 16:46
******73, 1) в коде добавляешь публичный метод с параметром int. в редакторе в инспекторе кнопки выбираешь этот метод и указываешь параметр.
1.б) в другую сцену ты можешь передать ещё и через static переменную
2) ты потерял скобочки ToString().
1
 Аватар для Kraken73
105 / 93 / 50
Регистрация: 17.09.2015
Сообщений: 612
21.06.2016, 10:55  [ТС]
Добавлено через 1 час 23 минуты
Ну вроде первую задачу решил с PlayerPrefs. А что можно со 2-ой сделать?)

Добавлено через 4 минуты
Получаю имя объекта на который кликнули так
C#
1
2
3
public void selectRequest(GameObject col) {
        text.text = col.name;
    }
В инспекторе на каждый компонент приходится выбирать go. Мне кажется или я неправильно сделал? и можно сделать легче?
0
103 / 90 / 19
Регистрация: 15.04.2015
Сообщений: 353
21.06.2016, 12:12
DontDestroyOnLoad - свойство MonoBehaviour. Задаете true - и ваш объект просто не уничтожается при переходе с одной сцены на другую.
Вторая проблема вызывает у меня целый ряд вопросов.
1) Что должно храниться в вашем reader? Названия спрайтов?
2) Если указывать метод без скобочек, он считается как делегат (что у вас, собственно говоря, и происходит), и хранить его можно только в соответственных типах данных (Func, Action, delegate и т.д.). Вы действительно хотели использовать ToString именно как делегат?
3) Если нет, и вы хотели получить именно текст, то почему вы считаете, что переменная типа Sprite нормально воспримет значение типа string? Если спрайт у вас лежит в Resources, его можно вытянуть через метод Load, используя полное имя спрайта (включая путь), убедиться, что загрузился он именно в формате Sprite, и уже тогда назначать свойству sprite.
1
 Аватар для Kraken73
105 / 93 / 50
Регистрация: 17.09.2015
Сообщений: 612
21.06.2016, 15:48  [ТС]
Цитата Сообщение от lentinant Посмотреть сообщение
Вторая проблема вызывает у меня целый ряд вопросов.
Sprite у меня лежит в папке с проектом. В reader хранится название спрайта, и через это название я и хотел поменять спрайт у UI Image. Но не совсем понял как это можно сделать)
0
103 / 90 / 19
Регистрация: 15.04.2015
Сообщений: 353
22.06.2016, 12:13
Цитата Сообщение от ******73 Посмотреть сообщение
Sprite у меня лежит в папке с проектом. В reader хранится название спрайта, и через это название я и хотел поменять спрайт у UI Image. Но не совсем понял как это можно сделать)
Нельзя так просто взять и поменять спрайт, используя только имя. Вам нужно создать объект типа Sprite, загрузив его с помощью Resources.Load, AssetDatabase.LoadAssetAtPath, или другого подобного метода, используя имя файла. Вот тогда, используя этот объект, вы сможете поменять переменную sprite у Image.
1
 Аватар для Kraken73
105 / 93 / 50
Регистрация: 17.09.2015
Сообщений: 612
22.06.2016, 15:38  [ТС]
Цитата Сообщение от lentinant Посмотреть сообщение
Вам нужно создать объект типа Sprite, загрузив его с помощью Resources.Load, AssetDatabase.LoadAssetAtPath, или другого подобного метода, используя имя файла. Вот тогда, используя этот объект, вы сможете поменять переменную sprite у Image.
Спасибо, попробую)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.06.2016, 15:38
Помогаю со студенческими работами здесь

Переход на другую сцену в Unity C#
Здравствуйте , такая идея - хочу сделать так чтобы , когда игрок нажимал на пробел допустим , начиналась игра ( вызывалась другая сцена )....

Переход в другую сцену в Unity
Здравствуйте! я столкнулся с одной проблемой, при создании игры в Unity переход из главной сцены (меню игры) в другую ( в игровой...

Почему при переходе на другую сцену что-то странное происходит с тенями?
Может быть, что что-то не настроено, расскажите, пожалуйста, что это может быть. Т.е. я из меню перехожу в главную сцену, и происходит...

Теряется ссылка на объект после после перехода в другую сцену
И снова здравствуйте На сей раз проблема такова: У меня есть скрипт, позволяющий поднимать определенные предметы ( в инвентарь ),...

Переход в другую сцену
Как создать и перейти кнопкой в другую сцену?


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера 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, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru