Size: a a a

2020 March 29

PD

Paul Dyatlov in unity3d.ru
источник
2020 March 30

РП

Руслан Петренко in unity3d.ru
Добрый вечер. Есть шипы и игрок. на шипах в collider проверяю через OnTriggerStay2D что игрок и вызываю урон. При входе игрок получает урон, но если стоит неподвижно то OnTriggerStay2D больше не срабатывает. Только начинаю движение - сразу срабатывает проверка. Хочу сделать что если игрок остается на шипах неподвижно все равно срабатывала проверка какая то.
источник

H

Hary Gary in unity3d.ru
Добавь время неуязвимости путём выключения коллайдера который будет отвечать только ради урон
источник

РП

Руслан Петренко in unity3d.ru
Hary Gary
Добавь время неуязвимости путём выключения коллайдера который будет отвечать только ради урон
Неуязвимось задаю через флаг, флаг включается выключается через корутину.

canTakeDamage = false;
yield return new WaitForSeconds(time);
canTakeDamage = true;
источник

РП

Руслан Петренко in unity3d.ru
Hary Gary
Добавь время неуязвимости путём выключения коллайдера который будет отвечать только ради урон
Вопрос в другом - если стоит персонаж стоит на шипах неподвижно - хочу начислять ему урон, но колизия не срабатывает.
источник

H

Hary Gary in unity3d.ru
Чекайте не вход а стай
источник

РП

Руслан Петренко in unity3d.ru
Hary Gary
Чекайте не вход а стай
сделал так:

private PlayerHealth ph = null;

   private void OnTriggerEnter2D(Collider2D collision)
   {
       if (collision.gameObject.CompareTag("Player"))
       {
           ph = collision.gameObject.GetComponent<PlayerHealth>();
       }
   }

   private void Update()
   {
       if(ph != null)
       {
           ph.takeDamage(1);
       }
   }

   private void OnTriggerExit2D(Collider2D collision)
   {
       if (collision.gameObject.CompareTag("Player"))
       {
           ph = null;
       }
   }
источник

DS

Denis Saprykin in unity3d.ru
Руслан Петренко
сделал так:

private PlayerHealth ph = null;

   private void OnTriggerEnter2D(Collider2D collision)
   {
       if (collision.gameObject.CompareTag("Player"))
       {
           ph = collision.gameObject.GetComponent<PlayerHealth>();
       }
   }

   private void Update()
   {
       if(ph != null)
       {
           ph.takeDamage(1);
       }
   }

   private void OnTriggerExit2D(Collider2D collision)
   {
       if (collision.gameObject.CompareTag("Player"))
       {
           ph = null;
       }
   }
Через функцию OnTriggerStay2D(Collider2D collision) пробуй. Проверяет нахождение коллайдеров в триггере
источник

РП

Руслан Петренко in unity3d.ru
Denis Saprykin
Через функцию OnTriggerStay2D(Collider2D collision) пробуй. Проверяет нахождение коллайдеров в триггере
так в том то и вопрос - если игрок неподвижен - OnTriggerStay2D не срабатывает. Только начинаешь движение - сразу срабатывает.
источник

H

Hary Gary in unity3d.ru
В стей как раз и должно раьотать
источник

H

Hary Gary in unity3d.ru
У тебя  ентер стоит
источник

РП

Руслан Петренко in unity3d.ru
Hary Gary
У тебя  ентер стоит
то я уже переделал. До этого стоят Стей.
источник

H

Hary Gary in unity3d.ru
Окей
источник

DS

Denis Saprykin in unity3d.ru
тогда попробуй так в stay сделать
while (collaider.tag == "Player")
{//отнимаем хп}
источник

DS

Denis Saprykin in unity3d.ru
а вообще, странно, что не срабатывает постоянно
источник

РП

Руслан Петренко in unity3d.ru
Denis Saprykin
тогда попробуй так в stay сделать
while (collaider.tag == "Player")
{//отнимаем хп}
проблема не в проверке. В самом начале писал вывод в консоль имени обекта что заходит в Стей. Ничего в консоль не выводило если игрок на шипах стоит неподвижно.
источник

DS

Denis Saprykin in unity3d.ru
Руслан Петренко
проблема не в проверке. В самом начале писал вывод в консоль имени обекта что заходит в Стей. Ничего в консоль не выводило если игрок на шипах стоит неподвижно.
Тогда через Overlap можно попробовать проверять наличие персонажа
источник

AN

Arthur Novikov in unity3d.ru
Кто может объяснить, как достигаются такие линии как на видео? Это какой-то outline-шейдер на кубиках?
https://youtu.be/3-4_-FBDr8Q?t=44
источник

👨n

👨🏼‍💻 Pírαt neωTíme 🛩 in unity3d.ru
Руслан Петренко
так в том то и вопрос - если игрок неподвижен - OnTriggerStay2D не срабатывает. Только начинаешь движение - сразу срабатывает.
просто зафиксируй в коллайдере игрок вышел или еще не вышел из зоны действия и по циклу проверяй есть ли игрок, когда он есть наносишь новый урок, если игрок вышел - снимаешь маркер и выключаешь цикл проверки. Ну либо типа того
источник

DS

Denis Saprykin in unity3d.ru
Кто может подсказать, почему рэйкаст так дергается? Постоянно прыгает между двумя точками. И есть положение, когда эти два луча сливаются.
источник