Вопрос по архитектуре проекта
|
|
defGMDefeloper | Дата: Суббота, 17 Февраля 2018, 16:34 | Сообщение # 1 |
частый гость
Сейчас нет на сайте
| Сделал пространство имен gameUI в нем несколько класов- интерфейсы для раных уроней. Как обращяться к переменным внутри класса не используя gameUI.scene.variable ,а просто variable = ..
Код gameUI.spaceMenu.spaceMenu.uiActive Это совсем не удобно Как можно взаемодействовать между скриптами? Есть ещё вариант типа
Код public static uiclass link; awake{ link=this; }
Сообщение отредактировал defGMDefeloper - Суббота, 17 Февраля 2018, 17:25 |
|
| |
drcrack | Дата: Суббота, 17 Февраля 2018, 17:45 | Сообщение # 2 |
старожил
Сейчас нет на сайте
| Цитата Как обращяться к переменным внутри класса не используя gameUI.scene.variable ,а просто variable = .. никак максимум что можно сделать это using gameUI; чтобы не писать gameUI.
Цитата Сделал пространство имен gameUI в нем несколько класов- интерфейсы для раных уроней. Зачем?
|
|
| |
defGMDefeloper | Дата: Суббота, 17 Февраля 2018, 17:53 | Сообщение # 3 |
частый гость
Сейчас нет на сайте
| Ну так интерфейс взаимодействует с игрой и наоборот,а в одном скрипте держать неудобно
|
|
| |
drcrack | Дата: Суббота, 17 Февраля 2018, 18:03 | Сообщение # 4 |
старожил
Сейчас нет на сайте
| Должно быть одно глобальное состояние и события, на которые подписаны компоненты интерфейса, которые показывают это состояние Если ты из логики игры хочешь поменять что-то в классах интерфейса — архитектуру надо менять, пока не поздно.
Цитата а в одном скрипте держать неудобно Философия юнити предполагает что у тебя не один и не два скрипта, а десятки компонентов, каждый с одной четко определенной задачей (в идеале). Или даже сотни, если игра большая
Сообщение отредактировал drcrack - Суббота, 17 Февраля 2018, 18:05 |
|
| |
seaman | Дата: Суббота, 17 Февраля 2018, 21:12 | Сообщение # 5 |
старожил
Сейчас нет на сайте
| Цитата никак максимум что можно сделать using используется не только для подключения неймспейс, но и для указания алиасов. Т.е. можно так: using menu = gameUI.spaceMenu.spaceMenu; и потом: menu.uiActive... Начиная с C# 6 есть еще одна возможность using static Читаем тут https://docs.microsoft.com/ru-ru/dotnet/csharp/language-reference/keywords/using-static PS: имхо гораздо удобней придерживаться общеупотребительных правил именования. Т.е. пространства имен, классы и методы - с большой буквы...
Сообщение отредактировал seaman - Суббота, 17 Февраля 2018, 21:14 |
|
| |
drcrack | Дата: Суббота, 17 Февраля 2018, 21:21 | Сообщение # 6 |
старожил
Сейчас нет на сайте
| Цитата using используется не только для подключения неймспейс, но и для указания алиасов. можно, но вместо имени класса все равно надо будет писать алиас, не вижу разницы ) using static иногда полезен, но кривую архитектуру не исправит тсу явно надо все глобально рефакторить
Сообщение отредактировал drcrack - Суббота, 17 Февраля 2018, 21:21 |
|
| |
seaman | Дата: Воскресенье, 18 Февраля 2018, 17:45 | Сообщение # 7 |
старожил
Сейчас нет на сайте
| Ну,- писанины все же меньше .
В данном случае нужно, конечно смотреть весь код, но такая вложенность действительно наводит о мысли о кривости архитекутуры...
|
|
| |
defGMDefeloper | Дата: Воскресенье, 18 Февраля 2018, 19:06 | Сообщение # 8 |
частый гость
Сейчас нет на сайте
| Можно же просто сделать Menu menu_ и в инспекторе закинуть туда нужный скрипт XD.
Сообщение отредактировал defGMDefeloper - Вторник, 20 Февраля 2018, 12:46 |
|
| |