Среда, 24 Апреля 2024, 06:37

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » onMouseDown не работает
onMouseDown не работает
zaicev9797Дата: Среда, 04 Июня 2014, 16:17 | Сообщение # 1
AbRaKaDaBrA
Сейчас нет на сайте
пишу такой код

void OnMouseDown() {
Debug.Log("ihhwndchdw");
}

тыкаю по кнопке, но консоль пустая
Коллайдер на кнопке есть, и его граница находится перед камерой.
Что не так?


проект Mysterious Space. The losted moment
allodsДата: Среда, 04 Июня 2014, 16:25 | Сообщение # 2
почти ветеран
Сейчас нет на сайте
void OnMouseDown(0) {
Debug.Log("ihhwndchdw");
}
robertonoДата: Среда, 04 Июня 2014, 16:33 | Сообщение # 3
Чокнутый Кот
Сейчас нет на сайте
zaicev9797,
скрипт с этим кодом на объекте на который ты кликаешь?
zaicev9797Дата: Среда, 04 Июня 2014, 16:54 | Сообщение # 4
AbRaKaDaBrA
Сейчас нет на сайте
Цитата robertono ()
на объекте на который ты кликаешь?

да
Цитата allods ()
void OnMouseDown(0) {
Debug.Log("ihhwndchdw");
}


консоль ругается на нолик


проект Mysterious Space. The losted moment
allodsДата: Среда, 04 Июня 2014, 17:24 | Сообщение # 5
почти ветеран
Сейчас нет на сайте
А попробуй с коллайдером
zaicev9797Дата: Среда, 04 Июня 2014, 17:42 | Сообщение # 6
AbRaKaDaBrA
Сейчас нет на сайте
на кнопке и так коллайдер висит

проект Mysterious Space. The losted moment
KamiRoninДата: Среда, 04 Июня 2014, 17:48 | Сообщение # 7
почти ветеран
Сейчас нет на сайте
была тема

Мыслю - значит программирую...
Конструктивная критика - умных ведет к совершенству...
Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей.
zaicev9797Дата: Среда, 04 Июня 2014, 17:53 | Сообщение # 8
AbRaKaDaBrA
Сейчас нет на сайте
честно, так и не понял, в чем соль

а эта функция может сработать если жмякнуть, находясь внутри коллайдера?


проект Mysterious Space. The losted moment
KamiRoninДата: Среда, 04 Июня 2014, 17:56 | Сообщение # 9
почти ветеран
Сейчас нет на сайте
вот на официальном форуме юньки ветка

в двух словах:
- нет ли между камерой и конечной "кнопкой" невидимого коллайдер-объекта не дающего нажать
- глубина зрения камеры (критично!!)
- толщина триггера - не должна быть нулевой (критично!)
ну там есть еще нюансы, почитай.


Мыслю - значит программирую...
Конструктивная критика - умных ведет к совершенству...
Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей.
KamiRoninДата: Среда, 04 Июня 2014, 17:59 | Сообщение # 10
почти ветеран
Сейчас нет на сайте
Цитата zaicev9797 ()
а эта функция может сработать если жмякнуть, находясь внутри коллайдера?

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


Мыслю - значит программирую...
Конструктивная критика - умных ведет к совершенству...
Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей.
zaicev9797Дата: Четверг, 05 Июня 2014, 16:07 | Сообщение # 11
AbRaKaDaBrA
Сейчас нет на сайте
ну тогда все ясно, теперь вопрос только как в этой функции указать, какие слои игнорировать

Добавлено (04.06.2014, 21:17)
---------------------------------------------
можно конечно самостоятельно срейкастить, номнежинтересно biggrin

Добавлено (04.06.2014, 21:40)
---------------------------------------------
хм, кажись сам разобрался

Добавлено (04.06.2014, 21:42)
---------------------------------------------
нет, не разобрался, думал поместить объект на слой игноррейкаст, но мне это явно не подходит.
Можно ли как-то указать маску для этой функции (onMouse)?

Добавлено (05.06.2014, 16:07)
---------------------------------------------
Теперь другая проблема

у меня есть Корабль, к Короблю удочерен объект Кокпит, а к Кокпиту удочерен объект Монитор

При старте я создаю несколько кнопок из одного префаба с помощью цикла, и сразу удочеряю их кокпиту. Кнопки имеют коллайдер и им назначен слой Near.

когда я тыкаю мышкой, я сначала пускаю один рейкаст

ray = Camera.main.ScreenPointToRay(Input.mousePosition);

if (Physics.Raycast(transform.position,ray.direction,out hit,100000,rayCastingMask)) // в инспекторе в рейКастингМаск указан только слой Near
{

Debug.Log(hit.transform.name);//вывожу имя того, пок кому тыкнул

}

потом второй


if(Physics.Raycast(ray,out hit,RadDist))
{

if (Screen.showCursor)
{ ....... и т.д. // это уже к делу не относится

Дак вот почемуто, когда я тыкаю ПО КНОПКАМ (они у меня названы "Button") он мне выводит имя корабля, когда я тыкаю немного мимо кнопок, он мне ничего не выводит.

я даже на всякий случай отключил коллайдер самого кораблика, но только почемуто всеравно при щелканьи по кнопкам появляется имя корабля.

Я отказываюсь понимать такое поведение. Народ, объясните в чем дело?


проект Mysterious Space. The losted moment
DalyДата: Четверг, 05 Июня 2014, 16:48 | Сообщение # 12
постоянный участник
Сейчас нет на сайте
мб рейкаст не правильно летит? Точнее не от того объекта от которого ты ожидаешь?
zaicev9797Дата: Четверг, 05 Июня 2014, 17:19 | Сообщение # 13
AbRaKaDaBrA
Сейчас нет на сайте
я его из камеры пускаю

Добавлено (05.06.2014, 17:19)
---------------------------------------------
тем болле я на кораблике коллайдер отключил, а выводится всеравно имя корабля


проект Mysterious Space. The losted moment
allodsДата: Четверг, 05 Июня 2014, 18:51 | Сообщение # 14
почти ветеран
Сейчас нет на сайте
на чем скрипт то? Так как if (Physics.Raycast(transform.position,ray.direction,out hit,100000,rayCastingMask)) // в инспекторе в рейКастингМаск указан только слой Near

ты пускаешь его из transform.position. Если скрипт не на камере то возможно ты пускаешь свой рэй из чего то другого, но в сторону куда смотрит камера

Добавлено (05.06.2014, 18:51)
---------------------------------------------
if (Physics.Raycast(ray,hit,100000,rayCastingMask))
{

Debug.Log(hit.transform.name);

}
вот так можеет

zaicev9797Дата: Четверг, 05 Июня 2014, 18:57 | Сообщение # 15
AbRaKaDaBrA
Сейчас нет на сайте
скрипт на камере (он вообще у меня один в сцене) еслиб этих скриптов в сцене было несколько получился бы эксепшин

проект Mysterious Space. The losted moment
allodsДата: Пятница, 06 Июня 2014, 03:44 | Сообщение # 16
почти ветеран
Сейчас нет на сайте
короче где то радужный пони зарыт , нужен скрин с компонентами и прочими бобрами
DalyДата: Пятница, 06 Июня 2014, 08:41 | Сообщение # 17
постоянный участник
Сейчас нет на сайте
Цитата allods ()
короче где то радужный пони зарыт , нужен скрин с компонентами и прочими бобрами


ты про бубен и про 7-ро козлов сказать wink
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » onMouseDown не работает
  • Страница 1 из 1
  • 1
Поиск:

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