Unity3d-cкриптинг - Страница 6 - Форум Игроделов
Чт, 02 Май 2024, 03:41 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 6 из 6
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
Форум Игроделов » UNITY3D » СКРИПТИНГ » Unity3d-cкриптинг (C#, JavaScript, Boo.)
Unity3d-cкриптинг
Wladimir_dllДата: Чт, 03 Апр 2014, 00:52 | Сообщение # 101
 
Сообщений: 6
Награды: 0
Репутация: 0
Статус: Offline
Здравствуйте, уважаемые форумчане!
С Unity я знаком недавно, собственно, как и со скриптингом.
Написал простой скриптик. По моему разумению он должен был переключать значение on туда-сюда. Но он этого делать не хочет. Точнее, выполняет только вторую часть кода один раз. Скажите, пожалуйста, почему так? Понимаю, что упускаю что-то важное. Но что - понять не могу.

Собственно, сам скриптик.
Код
public bool on;
       
void Update()
{
    if(Input.GetMouseButtonDown(0)&on==false)
    {
     on=true;
    }
    if(Input.GetMouseButtonDown(0)&on==true)
    {
     on=false;
    }
}


Сообщение отредактировал Wladimir_dll - Вс, 30 Мар 2014, 10:30
 
СообщениеЗдравствуйте, уважаемые форумчане!
С Unity я знаком недавно, собственно, как и со скриптингом.
Написал простой скриптик. По моему разумению он должен был переключать значение on туда-сюда. Но он этого делать не хочет. Точнее, выполняет только вторую часть кода один раз. Скажите, пожалуйста, почему так? Понимаю, что упускаю что-то важное. Но что - понять не могу.

Собственно, сам скриптик.
Код
public bool on;
       
void Update()
{
    if(Input.GetMouseButtonDown(0)&on==false)
    {
     on=true;
    }
    if(Input.GetMouseButtonDown(0)&on==true)
    {
     on=false;
    }
}

Автор - Wladimir_dll
Дата добавления - 03 Апр 2014 в 00:52
ElarionДата: Чт, 03 Апр 2014, 11:27 | Сообщение # 102
Нет аватара
 
Сообщений: 4
Награды: 0
Репутация: 1
Статус: Offline
Проблема в том, что скрипт работает при нажатии кнопки(т.е. даже если ты нажал и отпустил - он отработает несколько раз).

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
 
СообщениеПроблема в том, что скрипт работает при нажатии кнопки(т.е. даже если ты нажал и отпустил - он отработает несколько раз).

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:27
ЛевшаДата: Чт, 03 Апр 2014, 12:21 | Сообщение # 103
Черный Волк
 
Сообщений: 7257
Награды: 30
Репутация: 3313
Статус: Offline
Цитата Elarion ()
как правильно сделать взаимодействие классов/объектов. А то сейчас у меня все друг к другу лезут и в итоге каша получается.

Литература конечно дело хорошее, но архитектура приложения требует индивидуального подхода для каждого конкретного случая.
Например я для больших проектов применяю блочное построение. Сами блоки стараюсь делать универсальными и законченными модулями.
А общение между модулями удобнее всего организовывать посредством менеджеров.
А литература легко гуглится. smile


X.cor.R (Prologue)
 
Сообщение
Цитата Elarion ()
как правильно сделать взаимодействие классов/объектов. А то сейчас у меня все друг к другу лезут и в итоге каша получается.

Литература конечно дело хорошее, но архитектура приложения требует индивидуального подхода для каждого конкретного случая.
Например я для больших проектов применяю блочное построение. Сами блоки стараюсь делать универсальными и законченными модулями.
А общение между модулями удобнее всего организовывать посредством менеджеров.
А литература легко гуглится. smile

Автор - Левша
Дата добавления - 03 Апр 2014 в 12:21
ilyakosДата: Чт, 03 Апр 2014, 12:29 | Сообщение # 104
 
Сообщений: 171
Награды: 0
Репутация: 8
Статус: Offline
Код

if (Input.GetMouseButtonDown(0)){
      On = !On;
}
 
Сообщение
Код

if (Input.GetMouseButtonDown(0)){
      On = !On;
}

Автор - ilyakos
Дата добавления - 03 Апр 2014 в 12:29
ElarionДата: Чт, 03 Апр 2014, 13:30 | Сообщение # 105
Нет аватара
 
Сообщений: 4
Награды: 0
Репутация: 1
Статус: Offline
Понятно. Просто думал может что-то конкретное посоветуете(сайт/книга/статья).
На самом деле именно на эту тематику мало попадалось информации, и та была довольно скудна. На хабре было что-то, но найти не могу =(
С индивидуальным подходом тоже понятно, тут важно и какую игру делаем и какого масштаба.

Еще вопрос, на другую тему. Если строить GameObject с помощью C#, есть ли смысл отдельно задавать вершины для коллайдера и меша? Читал как делают люди, почему-то все разбивают, я вот понять не могу зачем, они ведь совпадают, или я что-то упускаю? Использую для TileMap.
 
СообщениеПонятно. Просто думал может что-то конкретное посоветуете(сайт/книга/статья).
На самом деле именно на эту тематику мало попадалось информации, и та была довольно скудна. На хабре было что-то, но найти не могу =(
С индивидуальным подходом тоже понятно, тут важно и какую игру делаем и какого масштаба.

Еще вопрос, на другую тему. Если строить GameObject с помощью C#, есть ли смысл отдельно задавать вершины для коллайдера и меша? Читал как делают люди, почему-то все разбивают, я вот понять не могу зачем, они ведь совпадают, или я что-то упускаю? Использую для TileMap.

Автор - Elarion
Дата добавления - 03 Апр 2014 в 13:30
Wladimir_dllДата: Чт, 03 Апр 2014, 13:45 | Сообщение # 106
 
Сообщений: 6
Награды: 0
Репутация: 0
Статус: Offline
Elarion, спасибо за ответ. Кстати, а почему нужно использовать два знака"&"? В C#, кажется, хватит одного.

Цитата ilyakos ()
if(Input.GetMouseButtonDown(0)){
On = !On;
}

ilyakos, про такой код знаю. Но, просто нужно было реализовать включение при нескольких условиях, а отключение только при одном. Что-то типа:

Код
if(условие 1&on==false||условие 2&on==false||условие 3&on==false)
{on=true;}
if(условие1&on==true)
{on=false}
 
СообщениеElarion, спасибо за ответ. Кстати, а почему нужно использовать два знака"&"? В C#, кажется, хватит одного.

Цитата ilyakos ()
if(Input.GetMouseButtonDown(0)){
On = !On;
}

ilyakos, про такой код знаю. Но, просто нужно было реализовать включение при нескольких условиях, а отключение только при одном. Что-то типа:

Код
if(условие 1&on==false||условие 2&on==false||условие 3&on==false)
{on=true;}
if(условие1&on==true)
{on=false}

Автор - Wladimir_dll
Дата добавления - 03 Апр 2014 в 13:45
ElarionДата: Чт, 03 Апр 2014, 14:13 | Сообщение # 107
Нет аватара
 
Сообщений: 4
Награды: 0
Репутация: 1
Статус: Offline
Я если честно не помню что значат одинарные знаки & и другие, но не то что тебе надо это точно =)
Код то в итоге заработал как надо?


Сообщение отредактировал Elarion - Чт, 03 Апр 2014, 14:14
 
СообщениеЯ если честно не помню что значат одинарные знаки & и другие, но не то что тебе надо это точно =)
Код то в итоге заработал как надо?

Автор - Elarion
Дата добавления - 03 Апр 2014 в 14:13
Wladimir_dllДата: Чт, 03 Апр 2014, 14:42 | Сообщение # 108
 
Сообщений: 6
Награды: 0
Репутация: 0
Статус: Offline
Elarion, нет, не заработал. Но, Вы натолкнули меня на дельную мысль про нажатую (отжатую)клавишу. Видимо, дело в этом. Буду пытать скрипт дальше.

А символ "&" в C# означает простое "И". Символ "||" означает "Или".
 
СообщениеElarion, нет, не заработал. Но, Вы натолкнули меня на дельную мысль про нажатую (отжатую)клавишу. Видимо, дело в этом. Буду пытать скрипт дальше.

А символ "&" в C# означает простое "И". Символ "||" означает "Или".

Автор - Wladimir_dll
Дата добавления - 03 Апр 2014 в 14:42
ЛевшаДата: Чт, 03 Апр 2014, 16:35 | Сообщение # 109
Черный Волк
 
Сообщений: 7257
Награды: 30
Репутация: 3313
Статус: Offline
Будет работать нормально и при & и при |, и на любом из 3-х ЯП Unity, только в логи предупреждения посыпятся.

Цитата Elarion ()
Если строить GameObject с помощью C#, есть ли смысл отдельно задавать вершины для коллайдера и меша? Читал как делают люди, почему-то все разбивают, я вот понять не могу зачем, они ведь совпадают, или я что-то упускаю?

Наверно для производительности, так в мешКоллайдерах стараются использовать упрощенные сетки, с меньшим количеством трисов и соответственно легче обрабатываемыми при коллизиях.

Цитата Elarion ()
код безопасности немножко напрягает писать каждый раз=)

Это только для новичков, защита от спамБотов.
Подай заявку и тебе дадут статус *проверенного, там уже не надо будет вводить код безопасности.
Заявки на статус "Завсегдатай" в эту тему!


X.cor.R (Prologue)
 
СообщениеБудет работать нормально и при & и при |, и на любом из 3-х ЯП Unity, только в логи предупреждения посыпятся.

Цитата Elarion ()
Если строить GameObject с помощью C#, есть ли смысл отдельно задавать вершины для коллайдера и меша? Читал как делают люди, почему-то все разбивают, я вот понять не могу зачем, они ведь совпадают, или я что-то упускаю?

Наверно для производительности, так в мешКоллайдерах стараются использовать упрощенные сетки, с меньшим количеством трисов и соответственно легче обрабатываемыми при коллизиях.

Цитата Elarion ()
код безопасности немножко напрягает писать каждый раз=)

Это только для новичков, защита от спамБотов.
Подай заявку и тебе дадут статус *проверенного, там уже не надо будет вводить код безопасности.
Заявки на статус "Завсегдатай" в эту тему!

Автор - Левша
Дата добавления - 03 Апр 2014 в 16:35
ElarionДата: Вс, 06 Апр 2014, 14:18 | Сообщение # 110
Нет аватара
 
Сообщений: 4
Награды: 0
Репутация: 1
Статус: Offline
Кто-нибудь работал с A*pathFindingProject Aaron'a? Возникла проблема, при пересчете графа, почему-то считает юнит препятствием и не рисует под ним сетку, в следствии чего юнит не может двигаться. Если же граф не пересчитывается, то все нормально.
 
СообщениеКто-нибудь работал с A*pathFindingProject Aaron'a? Возникла проблема, при пересчете графа, почему-то считает юнит препятствием и не рисует под ним сетку, в следствии чего юнит не может двигаться. Если же граф не пересчитывается, то все нормально.

Автор - Elarion
Дата добавления - 06 Апр 2014 в 14:18
Форум Игроделов » UNITY3D » СКРИПТИНГ » Unity3d-cкриптинг (C#, JavaScript, Boo.)
  • Страница 6 из 6
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2024