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

родительский триггер

СообщениеДобавлено: 06 июл 2018, 15:48
Torbenlino
Есть объект(враг) на котором висит триггер(маленький) он отвечает за нанесение урона персонажу который в нем находится.
На враге висит дочерний объект с триггером(большим) который просто определяет находится ли в нем наш персонаж.
При таком раскладе когда персонаж входит в большой триггер на него начинает действовать и триггер родителя
Как заставить триггеры родителя и наследника действовать независимо друг от друга?

Re: родительский триггер

СообщениеДобавлено: 06 июл 2018, 16:04
1max1
Сравнивай имена объектов или теги.

Re: родительский триггер

СообщениеДобавлено: 06 июл 2018, 16:26
Torbenlino
вот у меня на враге скрипт висит
Синтаксис:
Используется csharp
public void OnTriggerEnter2D(Collider2D col)
    {    
        if (col.name == "player1")
        {        
                        col.GetComponent<baseChar>().takeDamage(3);
        }
    }
 

на этом же враге дочерний объект с тригерром(большего радиуса)
Синтаксис:
Используется csharp
public bool agr = false;

    public void OnTriggerEnter2D(Collider2D col)
    {  
        if (col.name == "player1")
        {
            agr = true;
        }
    }

    public void OnTriggerExit2D(Collider2D col)
    {
        if (col.name == "player1")
        {
            agr = false;
        }
    }
 

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

Re: родительский триггер

СообщениеДобавлено: 06 июл 2018, 17:45
1max1
Синтаксис:
Используется csharp
public void OnTriggerEnter2D(Collider2D col)
    {    
        if (col.name == "player1" && gameObject.name == "Enemy")
        {        
                        col.GetComponent<baseChar>().takeDamage(3);
        }
    }
 


Синтаксис:
Используется csharp
public bool agr = false;

    public void OnTriggerEnter2D(Collider2D col)
    {  
        if (col.name == "player1" && gameObject.name == "Child")
        {
            agr = true;
        }
    }

    public void OnTriggerExit2D(Collider2D col)
    {
        if (col.name == "player1" && gameObject.name == "Child")
        {
            agr = false;
        }
    }
 


Но это к сожалению костыли.

Re: родительский триггер

СообщениеДобавлено: 06 июл 2018, 17:50
seaman
То что маленький - триггер, это принципиально? Сделать его коллайдером никак?

Re: родительский триггер

СообщениеДобавлено: 06 июл 2018, 18:06
Torbenlino
seaman писал(а):То что маленький - триггер, это принципиально? Сделать его коллайдером никак?

он точно должен быть триггером
1max1 писал(а):
Синтаксис:
Используется csharp
public void OnTriggerEnter2D(Collider2D col)
    {    
        if (col.name == "player1" && gameObject.name == "Enemy")
        {        
                        col.GetComponent<baseChar>().takeDamage(3);
        }
    }
 


Синтаксис:
Используется csharp
public bool agr = false;

    public void OnTriggerEnter2D(Collider2D col)
    {  
        if (col.name == "player1" && gameObject.name == "Child")
        {
            agr = true;
        }
    }

    public void OnTriggerExit2D(Collider2D col)
    {
        if (col.name == "player1" && gameObject.name == "Child")
        {
            agr = false;
        }
    }
 


Но это к сожалению костыли.

ничего не изменилось

Re: родительский триггер

СообщениеДобавлено: 06 июл 2018, 19:49
1max1
Видимо что-то пошло не так))
Сделай свои триггеры параллельно, 2 объекта в дочерних под твоим врагом, первый объект большой триггер, второй маленький, и скрипты естественно на 1 и 2 кинь.

Re: родительский триггер

СообщениеДобавлено: 06 июл 2018, 19:53
Torbenlino
ну я так и сделал уже)
Повесил на врага еще один дочерний объект с триггером, теперь он отвечает за получение урона моим персонажем.
Теперь все работает, но блин прост интересно почему если у родителя есть триггер и скрип с методом онТриггерЕнтер, то все триггеры дочерних объектов работают как один большой который делает все что прописано во всех скриптах этих дочерних объектов.

Re: родительский триггер

СообщениеДобавлено: 06 июл 2018, 20:01
1max1
на то они и дочерние)