Пятница, 22 Июня 2018, 23:34

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Модератор форума: beril  
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Вопрос по архитектуре проекта
Вопрос по архитектуре проекта
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
старожил
Сейчас на сайте
Цитата
не вижу разницы )

Ну,- писанины все же меньше :D .

В данном случае нужно, конечно смотреть весь код, но такая вложенность действительно наводит о мысли о кривости архитекутуры...
defGMDefeloperДата: Воскресенье, 18 Февраля 2018, 19:06 | Сообщение # 8
частый гость
Сейчас нет на сайте
Можно же просто сделать Menu menu_ и в инспекторе закинуть туда нужный скрипт XD.

Сообщение отредактировал defGMDefeloper - Вторник, 20 Февраля 2018, 12:46
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Вопрос по архитектуре проекта
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2018 Рейтинг