Почему Physics.OverlapCircle для экземпляра объекта не обнаруживает игровой объект на определенном слое c? - PullRequest
0 голосов
/ 11 июля 2020

Я создаю экземпляр объекта, который должен определять, перекрывается ли он с игроком на слое игрока. До этого я пробовал, работает ли он без создания экземпляра объекта, и он работал нормально.

Я пытался увидеть, что возвращает Physics2D.OverlapCircle, и значение всегда было нулевым.

Это моя часть кода:

    void Update()
    {
        Checking_for_hit();
        Checking_for_collisions();
    }
    
    void Checking_for_hit()
    {
        if (time_s < 0f && ok)
        {
            animator.SetTrigger("Die");
            ok = false;
        }
        else if (ok) 
            time_s -= Time.fixedDeltaTime;

        
        if( Physics2D.OverlapCircle(point.position, attack_range, playerlayer) && pm.isfighting)
        {
            ok = true;
            Destroy(gameObject, 1f);
            return;
        }
        
    }

    void Checking_for_collisions()
    {

        if ( Physics2D.OverlapCircle(point.position, radius, playerlayer) && time < 0f)  
        {
            if(is_waiting)
            {
                hp.TakeDamage_without_anim(15);
                time = CoolDownTime;
            }
            else if(pm.isfighting)
            {
                hp.TakeDamage_without_anim(15);
                time = CoolDownTime_moving;
            }
            else
            {
                hp.TakeDamage(15);
                time = CoolDownTime_moving;
            }
            
        }
        else 
            time -= Time.fixedDeltaTime;
    }

1 Ответ

1 голос
/ 11 июля 2020

В этом случае вы указываете ему игнорировать playerLayer.

Параметр layerMask для Physics.OverlapCircle(point, radius, layerMask) устанавливает слой, который игнорируется при обнаружении столкновений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...