Страница 1 из 2

OnCollisionEnter запускает даже на выключенном скрипте(

СообщениеДобавлено: 08 апр 2019, 20:49
greatPretender
КАк решить? Может кто сталкивался? В инете не могу найти решение этой проблемы

Re: OnCollisionEnter запускает даже на выключенном скрипте(

СообщениеДобавлено: 08 апр 2019, 20:52
1max1
Отключай коллайдер, а не скрипт.

Re: OnCollisionEnter запускает даже на выключенном скрипте(

СообщениеДобавлено: 08 апр 2019, 20:57
greatPretender
Нет, коллайдер мне нужен. У меня объекте 2 скрипта. я думал OnCollisionEnter сработает только на включенном.

Re: OnCollisionEnter запускает даже на выключенном скрипте(

СообщениеДобавлено: 08 апр 2019, 21:03
1max1
Проверяй включен ли скрипт в OnCollisionEnter.
if (!this.enabled) return;

Re: OnCollisionEnter запускает даже на выключенном скрипте(

СообщениеДобавлено: 08 апр 2019, 21:06
greatPretender
пробовал. не работает. , т.к. скрипт не включался при старте, то связей нету и на if (!this.enabled) он реагирует стандартно: Object reference not set....

Re: OnCollisionEnter запускает даже на выключенном скрипте(

СообщениеДобавлено: 08 апр 2019, 21:09
greatPretender
Можно конечно извратиться и включить скрипт при старте для связей и проверить работает ли так, но тогда в старте запустятся не нужные мне методы. Ставить на них if, чтобы не срабатывали - очередной изврат.
Ладно вернусь к тому от чего ушёл, перенесу OnCollisionEnter в один скрипт и внутр него проведу проверки на if, вместо деления на два скрипта (включённый и выключенный) )))

Re: OnCollisionEnter запускает даже на выключенном скрипте(

СообщениеДобавлено: 08 апр 2019, 21:15
raviluhu
Нужен скрипт с условием который при соприкосновении объекта 1 с движущимся объектом 2, движущий объект 2 останавливался, а при отлипании заново начинал двигаться

Re: OnCollisionEnter запускает даже на выключенном скрипте(

СообщениеДобавлено: 08 апр 2019, 21:46
1max1
greatPretender писал(а):пробовал. не работает. , т.к. скрипт не включался при старте, то связей нету и на if (!this.enabled) он реагирует стандартно: Object reference not set....

У меня всё работает замечательно, хз что ты там намудрил)

Re: OnCollisionEnter запускает даже на выключенном скрипте(

СообщениеДобавлено: 08 апр 2019, 22:36
AngryCat
Проверь может у тебя на объекте 2 скрипта. Или он висит на одном из дочерних...

Re: OnCollisionEnter запускает даже на выключенном скрипте(

СообщениеДобавлено: 10 апр 2019, 19:42
greatPretender
AngryCat писал(а):Проверь может у тебя на объекте 2 скрипта. Или он висит на одном из дочерних...

проверил, всё норм.

Re: OnCollisionEnter запускает даже на выключенном скрипте(

СообщениеДобавлено: 10 апр 2019, 19:48
greatPretender
1max1 писал(а):
greatPretender писал(а):пробовал. не работает. , т.к. скрипт не включался при старте, то связей нету и на if (!this.enabled) он реагирует стандартно: Object reference not set....

У меня всё работает замечательно, хз что ты там намудрил)

На юните 3 скрипта: основной (универсальный для всех юнитов), оборонительный и атакующий. В Start-е основного решается какой выключать обор-ный или атак-щий. Выключив не нужный скрипт, в нём теряется ссылка на включённый и поэтому проверка в OnCollionEnter в этом скрипте не работает.
Решил так: в конце Start-а в основном скрипте запускается корутина с задержкой на кадр, в кот-ой решается какой скрипт выключать и тогда ссылки внутри тех двоих скриптов не пропадают и срабатывает ваш метод, иначе - никак )))))

Re: OnCollisionEnter запускает даже на выключенном скрипте(

СообщениеДобавлено: 10 апр 2019, 19:50
1max1
Выключив не нужный скрипт, в нём теряется ссылка на включённый

Я вообще не понимаю что это значит, но если твой костыль работает, то и слава богу)

Re: OnCollisionEnter запускает даже на выключенном скрипте(

СообщениеДобавлено: 28 апр 2019, 18:48
greatPretender
господи, чё за бред.)))
Опять перестало срабатывать. Я в шоке.
---Рассказываю:
1 юнит. На нём два скрипта А и B.
Всегда включён только один и пока запущена игра ниче не меняется (нет даже кода для этого).
Контролирую в инспекторе.
В каждом из этих скриптов есть метод OnCollisionEnter ().
И когда пуля попадает в юнита, вызывается этот метод, но Карл, в обоих скриптах вызывается!!! ((
Смирился, что это фишка юнити.
В каждом методе я прописал проверку, чтобы срабатывал этот метод только во включённом скрипте, НО НЕТ мля...
всё равно игнориря проверку if - срабатывает в обоих. Это чё за трэш?!((
Но как? ведь один из скриптов отключён. Это нарушает условие if!!!
Объясните, как ТАК?

Синтаксис:
Используется csharp
public void OnCollisionEnter (Collision collision) {
        if (!A.enabled) {

public void OnCollisionEnter (Collision collision) {
        if (!B.enabled) {
 

Re: OnCollisionEnter запускает даже на выключенном скрипте(

СообщениеДобавлено: 28 апр 2019, 19:27
greatPretender
Заметил странную хрень. Выключенный скрипт срабатывает только тогда, когда юнит взрывается когда у него кончается здоровье, а не при каждом попадании пули :-?

Re: OnCollisionEnter запускает даже на выключенном скрипте(

СообщениеДобавлено: 28 апр 2019, 19:32
greatPretender
Короче придумал. Очередной тупой костыль))
Синтаксис:
Используется csharp
public void OnCollisionEnter (Collision collision) {
        if (!undef.enabled && enabled) {

К проверке на выключен ли не нужный скрипт Добавил проверку, а включён ли скрипт из которого я это запускаю, ХАХАХ
бред. Ест-нно включён, но почему вдруг юнька при смерти юнита, думает что этот скрипт выключен, а главное запускает на нём OnCollisionEnter уже после смерти юнита.?!? Чертовщина какая-то )))