Я думаю, что название говорит само за себя. Я использую 2D Colliders, и они находятся на одной позиции Z. OnMouseDown() не запускается, если вы нажимаете на коллайдер другого объекта. Это довольно раздражает. Мысли?OnMouseDown() не работает, когда коллайдер объекта сталкивается с другим коллайдером в позиции мыши
Q
OnMouseDown() не работает, когда коллайдер объекта сталкивается с другим коллайдером в позиции мыши
0
A
ответ
1
По крайней мере, для меня он срабатывает всегда на одном из объектов, но я не могу выбрать, какой из них.
В качестве обходного пути вы можете добавить дочерний gameObject с 3D-коллайдером (например, Box Collider
). Ребенок необходим, потому что оба двумерных и трехмерных коллайдера не могут быть привязаны к одному и тому же объекту gameObject. Сделайте 3D-коллайдер немного развернутым по направлению к камере. В этом случае всегда вызывается дочерний gameObjects OnMouseDown().
привет, спасибо. Я мог бы это сделать очень хорошо, но вы уверены, что это лучший способ? – MatiasP
Не знаю, если это лучший способ, но я не знаю ничего лучше. Вдалеке кажется странным, что на сцене одновременно есть два коллайдера. Может быть, лучше просто изменить размер другого? – maZZZu
Думаю, я мог бы сделать это с помощью 3D-коллайдера; это неважно. Я не могу изменить размер другого, это важно. Я использую коллайдер (тот, который обрабатывает клики), чтобы установить зону атаки для атаки игрока. Если игрок нажимает на коллайдер Enemy, то (и только тогда) OnMouseDown() не запускается. Меня удивляет, что я не нашел на этом сайте никаких тем. Может быть, я что-то упустил. Опять же, я знаю, что это можно сделать другими способами, но почему не так? – MatiasP