Unity 2D Raycast не работает должным образом - PullRequest
0 голосов
/ 05 марта 2019

Я хочу создать траекторию отражения, используя рендеринг линий, используя 2d физику.Рефекция не работает должным образом, иногда она работает, а иногда нет.для 3d все работает нормально, если просто заменить vector2 на vecor3 и использовать физическую функцию 3d.

Возможно, это связано с коллайдером, или же я добавил коробочный коллайдер 2d на цветные блоки.

Iнаписал свой код

void GenerateRay(Vector2 position , Vector2 direction , int count){

    if(count==0) return;

    Vector2 oldPosition = position;

    RaycastHit2D hit = Physics2D.Raycast(position , direction , maxRayLenght);

    if(hit.collider!=null){

        direction = Vector2.Reflect(direction , hit.normal);
       print(direction);
        position = hit.point;
         print(position);

    }
    else
    {
        position += direction*maxRayLenght;
    }


    lineRenderInstance[maxHop-count].SetPosition(0 , oldPosition);
    lineRenderInstance[maxHop-count].SetPosition(1 , position);



    GenerateRay(position , direction , count-1 );
}

если я изменю расстояние y, отражение иногда работает, а иногда нет. [!

нерабочий случай

enter image description here

Рабочий случай, если изменить высоту enter image description here

enter image description here

...