Здравствуйте, уважаемые форумчане! С Unity я знаком недавно, собственно, как и со скриптингом. Написал простой скриптик. По моему разумению он должен был переключать значение on туда-сюда. Но он этого делать не хочет. Точнее, выполняет только вторую часть кода один раз. Скажите, пожалуйста, почему так? Понимаю, что упускаю что-то важное. Но что - понять не могу.
Проблема в том, что скрипт работает при нажатии кнопки(т.е. даже если ты нажал и отпустил - он отработает несколько раз).
if (Input.GetmouseButtonUp(0) == false) on = true; if (Input.GetmouseButtonDown(0) && on == true && x == 10){ on = false; x = 5; } else if ((Input.GetmouseButtonDown(0) && on == true && x == 5){ on = false; x = 10; }
Попробуй так, тоже пока разбираюсь, но по идее должно работать. Х - твоя переменная. Кстати надо использовать && а не &.
Советую пользоваться Debug.Log("Message "+x) - выведет на экран"Message x", где х - любая переменная. Там все наглядно видно.
Подскажите какую-нибудь литературу по архитектуре приложения(не знаю корректно ли выразился). Мне интересно как правильно сделать взаимодействие классов/объектов. А то сейчас у меня все друг к другу лезут и в итоге каша получается.
Сообщение отредактировал Elarion - Чт, 03 Апр 2014, 11:56
как правильно сделать взаимодействие классов/объектов. А то сейчас у меня все друг к другу лезут и в итоге каша получается.
Литература конечно дело хорошее, но архитектура приложения требует индивидуального подхода для каждого конкретного случая. Например я для больших проектов применяю блочное построение. Сами блоки стараюсь делать универсальными и законченными модулями. А общение между модулями удобнее всего организовывать посредством менеджеров. А литература легко гуглится. X.cor.R (Prologue)
Понятно. Просто думал может что-то конкретное посоветуете(сайт/книга/статья). На самом деле именно на эту тематику мало попадалось информации, и та была довольно скудна. На хабре было что-то, но найти не могу =( С индивидуальным подходом тоже понятно, тут важно и какую игру делаем и какого масштаба.
Еще вопрос, на другую тему. Если строить GameObject с помощью C#, есть ли смысл отдельно задавать вершины для коллайдера и меша? Читал как делают люди, почему-то все разбивают, я вот понять не могу зачем, они ведь совпадают, или я что-то упускаю? Использую для TileMap.
Будет работать нормально и при & и при |, и на любом из 3-х ЯП Unity, только в логи предупреждения посыпятся.
ЦитатаElarion ()
Если строить GameObject с помощью C#, есть ли смысл отдельно задавать вершины для коллайдера и меша? Читал как делают люди, почему-то все разбивают, я вот понять не могу зачем, они ведь совпадают, или я что-то упускаю?
Наверно для производительности, так в мешКоллайдерах стараются использовать упрощенные сетки, с меньшим количеством трисов и соответственно легче обрабатываемыми при коллизиях.
ЦитатаElarion ()
код безопасности немножко напрягает писать каждый раз=)
Кто-нибудь работал с A*pathFindingProject Aaron'a? Возникла проблема, при пересчете графа, почему-то считает юнит препятствием и не рисует под ним сетку, в следствии чего юнит не может двигаться. Если же граф не пересчитывается, то все нормально.