Всем привет! Никак не могу понять в чем проблема, в

классе Target создается событие на 20 строчке, после чего я обрабатываю его в классе ScoreKeeper, но событие тупо не доходит до него. Все компоненты навешены, но почему то ивент просто не хочет срабатывать. Почему такое может быть?

32 ответов

10 просмотров
Julian-Beletsky Автор вопроса

Для начала удостоверься что рейкаст действительно попадает по объекту с компонентом Target (попадаешь ли в область if по выставленному тобой условию). Проверь по чему попадает рейкаст, возможно просто на том месте, ближе к камере, есть другой объект с коллайдером, на котором он прерывается и не доходит до объекта с компонентом Target. Проверь действительно ли объект с компонентом ScoreKeeper на момент событий клика из класса Target активен/включен/enable.

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

Немного не понимаю твою логику hit.collider == this.GetComponent<Collider> Ты говоришь "у объекта, в которого я попал, такой же колайдер как у меня"? Так он никогда и не зайдет сюда

Julian Beletsky
screenshot

Плюс тебе рейкаст надо делать в другом классе Какой-нибудь Raycaster (первое что пришло в голову) И туда пихаешь всю логику из Target и свое равенство == заменяешь на if(hit.collider.TryGetComponent(out Target target)

До инвока не дойдет в любом случае

Roman Salnikov
До инвока не дойдет в любом случае

Тут я видимо что-то не понимаю, почему?

res
Тут я видимо что-то не понимаю, почему?

Я же выше написал Он сравнивает колайдер куда попал и свой колайдер Как он может сам в себя попасть? Да и думаю ему это не надо

Roman Salnikov
Я же выше написал Он сравнивает колайдер куда поп...

Кто сам в себя? Рейкаст не зависит никак из какого места был вызван.

res
Кто сам в себя? Рейкаст не зависит никак из какого...

Да причем тут рейкаст вообще, там дальше ещё одно условие есть

res
Ты про условие с hit?

2 раза же написал об этом)

Roman Salnikov
2 раза же написал об этом)

В этом то и дела что хит это произвольное от рейкаста

res
Кто сам в себя? Рейкаст не зависит никак из какого...

А если рейкастить из центра объекта в первый попавшийся коллайдер, то коллайдер самого объекта не будет первым попавшимся? 🧐

Ibra
А если рейкастить из центра объекта в первый попав...

Будет, насколько я помню, для этого небольшой офсет делаешь, откуда стреляешь

Roman Salnikov
Я тебя вообще не понимаю

Результат рейкаста это структура hit, которая создаётся рейкастом. Если ты в компоненте вызовешь Рейкаст в сторону этого объект он выполнится так как он задумывал.

res
Результат рейкаста это структура hit, которая созд...

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

Ibra
А если рейкастить из центра объекта в первый попав...

Вопрос. Но это в любом случае похоже на баг, этого надо избегать, правильно настраивая layermask.

Roman Salnikov
Не понимаю к чему ты ведёшь, у него не зайдет в ус...

Ещё раз тут нет сам в себя. Компонент не стреляет рейкастами. Рейкаст это отдельная сущность, которая не зависит от место из которого вызвана.

Julian Beletsky
screenshot

А ты дебажил куда луч попадает?

Roman Salnikov
Не понимаю к чему ты ведёшь, у него не зайдет в ус...

А возможно ты просто не заметил, какой он рей пускает. Он кастит луч не от объекта в котором вызывается а он камера по ScreenPointToRay.

Ibra
А ты дебажил куда луч попадает?

Куда нажал ЛКМ по экрану игры от камеры

res
Куда нажал ЛКМ по экрану игры от камеры

Я имею ввиду, он вообще попадает? Может он попадает во что-то другое, а не в тот коллайдер, который ты хочешь

А ещё один вариант, может у тебя 2д игра а ты используешь Physic, а не Physic2D.

res
А ещё один вариант, может у тебя 2д игра а ты испо...

А, я что-то думал это у тебя проблема. х)

Ibra
Я имею ввиду, он вообще попадает? Может он попада...

Если он попадет мышкой в коллайдер, который прикреплен объекту с со скриптом Target, то да

res
Если он попадет мышкой в коллайдер, который прикре...

Вот я и говорю, надо продебажить и проверить) Если всë ок попадает, копать в сторону ивента уже

Ibra
Вот я и говорю, надо продебажить и проверить) Есл...

Ну в коде проблем не должно быть, с большей вероятностью у него проблема на самой сцене

Julian-Beletsky Автор вопроса

А, ну да, я прокидывал просто префаб из папки, сейчас я сравниваю попадание по наличию компонента

Julian Beletsky
А, ну да, я прокидывал просто префаб из папки, сей...

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

Похожие вопросы

Обсуждают сегодня

Ребят, а за скок можно впарить анон чат с апишкой и веб админкой ?
Eugene Неелов
15
с помощью чего можно бота добавить как админа в чат? (условно в боте есть кнопка, нажатие на которую приводит тебя к выбору чата и выдаче прав боту)
ηє νєямσяє
5
Ты просто гитлеровскую эстетику плохо понимаешь. Он же всё под Цезаря делал. А это как бы запрещённый приём в политике. Пиджаки они зачем все носят? Чтобы показать что они тип...
Ivan Kropotkin
4
'frakturBold' => ['𝖆', '𝖇', '𝖈', '𝖉', '𝖊', '𝖋', '𝖌', '𝖍', '𝖎', '𝖏', '𝖐', '𝖑', '𝖒', '𝖓', '𝖔', '𝖕', '𝖖', '𝖗', '𝖘', '𝖙', '𝖚', '𝖛', '𝖜', '𝖝', '𝖞', '𝖟', '𝕬', '𝕭', '𝕮', '𝕯'...
Roma
4
Добрый день, не подскажите, если в OC-V3 поменять страндартную директорию /storage/ на /storage2/ - не будет сильно много проблем ?
Max Dubovsky
32
Добрый день, подскажите как правильно сделать filter в backend-e. Есть модель (товар) у который связь belongsToMany (компания), компаний > 4k, поэтому выборку типа ->all(); н...
Max Dubovsky
7
А цены чем оправданы?
Lencore
7
напомните, как заменить placeholder , а не добавить содержимое ?
Artem N
4
Каким то образом можно определить ширину экрана пользователя перед загрузкой partial-а? Надо рассчитать ширину кадров слайдера для ресайза картинок для container-fluid.
Point 111
22
Всем привет. Нужна платная консультация от тех, кто сталкивался с октябрём в кластере или шарит оч хорошо в цмс. Проблема следующая: после переноса в кластер октябрь начал ...
wl
8
Карта сайта