|
1 / 1 / 0
Регистрация: 08.02.2018
Сообщений: 109
|
||||||||||||||||
UI controller. требуется критика12.01.2019, 13:40. Показов 1415. Ответов 27
Метки нет (Все метки)
Пишу приложение, состоящее из UI объектов.
UI объекты есть как статические, добавленные в редакторе, есть статические из префабов(добавленные на сцену в редакторе), и динамические(создаются из префабов в рантайме) Все элементы помечены по типу в своих тагах. Изначально было задумана смена цветовой схемы. Сперва было сделано так (опрос все)
на всех элементах висит скрипт
нужна критика
0
|
||||||||||||||||
| 12.01.2019, 13:40 | |
|
Ответы с готовыми решениями:
27
Требуется критика по коду Требуется конструктивная критика Требуется критика кода |
|
3362 / 1775 / 1028
Регистрация: 26.10.2018
Сообщений: 5,204
|
|
| 12.01.2019, 14:29 | |
|
Работает? Ну и не парься)
0
|
|
|
1 / 1 / 0
Регистрация: 08.02.2018
Сообщений: 109
|
|
| 12.01.2019, 14:34 [ТС] | |
|
)))
цель просто поставил делать грамотно , что б потом лапшу не вешать
0
|
|
|
3362 / 1775 / 1028
Регистрация: 26.10.2018
Сообщений: 5,204
|
|
| 12.01.2019, 15:00 | |
|
Это уже со временем придет, не заморачивайся.
0
|
|
|
753 / 600 / 204
Регистрация: 06.08.2015
Сообщений: 2,432
|
||||||
| 12.01.2019, 15:04 | ||||||
|
Тему желательно сделать классом с данными (цвета, спрайты, шрифты)
Списки элементов заменить на словарь списков В скрипте уи элемента сделать массив описания типа
Списки Color, надеюсь, не на элементы должны вести? Потому что Color - структура, она не ссылочная, поэтому лучше хранить именно компоненты (Button, Image, Panel, Slider) в соответствующих списках и получать из словаря по енаму типа (свой писать, да), вроде таких: ButtonDefault, Slider, TextHeader, TextPlain. Добавлено через 1 минуту В словаре можно хранить значения в виде интерфейса IList, чтобы обобщить списки разных типов
1
|
||||||
|
1 / 1 / 0
Регистрация: 08.02.2018
Сообщений: 109
|
||
| 12.01.2019, 15:46 [ТС] | ||
|
Cr0c, спасибо, буду смотреть!
Страшно конечно, но зубов бояться - в ... не давать ))) Добавлено через 5 минут
храню компоненты только спасибо!
0
|
||
|
753 / 600 / 204
Регистрация: 06.08.2015
Сообщений: 2,432
|
||||||
| 12.01.2019, 16:30 | ||||||
|
vedmed2005, советую ещё в методе регистрации применение темы к этому элементу вызывать.
Тему разбить на отдельные темы каждого типа элемента и хранить их уже внутри этой самой темы типа
1
|
||||||
|
1 / 1 / 0
Регистрация: 08.02.2018
Сообщений: 109
|
||
| 12.01.2019, 17:16 [ТС] | ||
|
Cr0c, спасибо! Буду вникать, кошмарно конечно для моего понимания. Но неделю назад для меня и контроллер, который я написал - был тёмный лес.
Добавлено через 1 минуту Интересная тема, черт возьми, но времени мало (( Добавлено через 22 минуты
0
|
||
|
753 / 600 / 204
Регистрация: 06.08.2015
Сообщений: 2,432
|
|
| 12.01.2019, 17:24 | |
|
vedmed2005, всё просто: каждый элемент имеет свою логику темы (цвет/шрифт/etc), которая внутри класса темы используется (скрыта от контроллера). Тема уи состоит из набора тем каждого элемента. Из-за того, что один элемент может иметь разное оформление внутри одной темы (текст, заголовок, etc) - надо это определять независимо в каждом объекте уи, для чего и используется енам в настройке объекта. Контроллер получает этот енам и объект, логика темы из объекта извлекает нужные компоненты.
0
|
|
|
1 / 1 / 0
Регистрация: 08.02.2018
Сообщений: 109
|
|
| 12.01.2019, 18:19 [ТС] | |
|
полностью согласен, понять только надо......))
0
|
|
|
3362 / 1775 / 1028
Регистрация: 26.10.2018
Сообщений: 5,204
|
|
| 12.01.2019, 18:47 | |
|
0
|
|
|
1 / 1 / 0
Регистрация: 08.02.2018
Сообщений: 109
|
|
| 13.01.2019, 09:53 [ТС] | |
|
1max1, нет)
Это не заказ, это хобби. Могу только после работы заниматься , и то недолго
0
|
|
|
1 / 1 / 0
Регистрация: 08.02.2018
Сообщений: 109
|
||||
| 16.01.2019, 20:33 [ТС] | ||||
|
Cr0c,
долго думал, непойму как реализовать класс темы типа элемента и присвоить элементу
0
|
||||
|
753 / 600 / 204
Регистрация: 06.08.2015
Сообщений: 2,432
|
|
| 16.01.2019, 20:55 | |
|
0
|
|
|
1 / 1 / 0
Регистрация: 08.02.2018
Сообщений: 109
|
||||||
| 17.01.2019, 10:21 [ТС] | ||||||
|
Cr0c, я неправильно выразился.
Ваш предложенный принцип мне понятен: 1. Есть элемент "MenuText" (тип Text) 2. На него вешаю скрипт
4. Контроллер помещает ссылку на элемент в соответствующий по типу список в словаре и заодно применяет тему к этому элементу. Так же понимаю что для каждого типа элемента нужно сделать свой класс темы. Этот класс темы внутри содержит метод, который применяет тему к элементу, на основе его типа(из переданного контроллеру enum UIElementType ), это все я понял. Для меня трудность заключается в том, то что я не пойму что из себя по структуре должен представлять это класс темы элемента! Это конечно плохой тон просить расписать класс, но хотя бы пример или что то подобное можно ?
0
|
||||||
|
3362 / 1775 / 1028
Регистрация: 26.10.2018
Сообщений: 5,204
|
|
| 17.01.2019, 10:35 | |
|
Класс темы должен содержать всё необходимое для применения темы, логично))
Цвет, размер, положение и т.д.
0
|
|
|
1 / 1 / 0
Регистрация: 08.02.2018
Сообщений: 109
|
|||||||||||||
| 17.01.2019, 12:27 [ТС] | |||||||||||||
|
Добавлено через 38 минут Короче изначально я привел свой вариант контроллера и попросил критики с точки зрения грамотности написания кода. Одним из советов был - создать свой класс темы для каждого типа УИ элемента. Похоже последний мой вопрос должен звучать так - Вот есть Button c типом "tagBtnMain" делаю итерацию списка зареганных элементов и по свичу применяю тему
то есть как то так:
Добавлено через 1 минуту поэтому и спрашиваю, для чего и почему ,в отличии от моего варианта, грамотнее создавать класс темы элемента ? Добавлено через 10 минут Анекдот вчера вычитал, может и баян конечно(не относится к теме обсуждения): Американский форум - человек задал вопрос - ему ответили на вопрос Еврейский форум - человек задал вопрос ему ответили вопросом Российский форум - человек задал вопрос - ему долго объясняли какой он му..ак)
0
|
|||||||||||||
|
753 / 600 / 204
Регистрация: 06.08.2015
Сообщений: 2,432
|
||||||
| 17.01.2019, 12:33 | ||||||
|
vedmed2005,
0
|
||||||
|
3362 / 1775 / 1028
Регистрация: 26.10.2018
Сообщений: 5,204
|
||
| 17.01.2019, 12:34 | ||
|
Здесь больше вопрос стоит в понимании своего же кода, читабельности и оптимизации. Конечно вариант с разделением на классы выглядит лучше, чем хранить всё в одном большом, но тут еще много нюансов.
1
|
||
|
753 / 600 / 204
Регистрация: 06.08.2015
Сообщений: 2,432
|
|
| 17.01.2019, 12:35 | |
|
Разбиваешь на мелкие независимые классы тему. Тонкости тем разных элементов больше не влияют, расширение крайне простое.
1
|
|
| 17.01.2019, 12:35 | |
|
Помогаю со студенческими работами здесь
20
Игровой компьютер. Требуется совет и аргументированная критика по выбору железа Controller Serve Raid M5014 SAS/SATA Controller совместимость с HDD Я теряю данные на пути Controller-View-Controller. Как правильно получить модель из представления? Controller Serve Raid M5014 SAS/SATA Controller Смена Root View Controller в Navigation Controller Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes.
А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения
развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
|
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|