Close
    Search Search

    Raycasting

      Raycasting

      pedia: Raycasting


      Raycasting é o uso de testes de interseção para resolver problemas no ROBLOX. O uso mais comum de raycasting é determinar o primeiro objeto interceptado por um raio. Isso é feito lançando um raio virtual de um certo ponto em uma direção e determinando a primeira superfície com a qual ele se cruzou.

      Em meados de 2011, ROBLOX implementou o método FindPartOnRay, que encontra na primeira parte um raio, representado por um objeto Ray, que colide quando lançado. Já era possível, usando algoritmos criados pelo usuário, implementar esse comportamento, mas esses algoritmos geralmente são muito caros em desempenho. Algoritmos implementados em um nível inferior (neste caso, em C ++) são geralmente mais rápidos e mais eficientes do que algoritmos em um nível superior. Mesmo com o método FindPartOnRay, o raycasting ainda é suficientemente lento para ser evitado quando não necessário.


      ROBLOX tem valores de raio, que são usados ​​pelo mecanismo para representar a origem e a direção dos raios. Esses raios podem ser criados com a função Ray.new:

      Ray.new (origem, direção)

      Parâmetros do método FindPartOnRay
      Parâmetro Tipo Descrição
      raio Raio O valor do raio que representa a origem e a direção em que o raio deve ser lançado.
      ignoreDescendentsInstance Instância Um objeto cujos descendentes serão ignorados pelo raio.
      landCellsAreCubes booleano Se for definido como verdadeiro, a forma das células do terreno será ignorada e serão consideradas como cubos.

      O método, que é um método da área de trabalho, retorna dois valores: a parte que o raio atingiu, se atingir um, e o ponto em que a parte foi atingida.



      Há também outro método que é quase idêntico ao método FindPartOnRay, o método FindPartOnRayWithIgnoreList, mas com a diferença de que em vez de ter um parâmetro para ignorar todos os descendentes de um objeto, ele ignora todos os descendentes de objetos em uma tabela. Isso permite uma maior personalização das partes que são ignoradas, mas também é mais lento.


      Adicione um comentário do Raycasting
      Comentário enviado com sucesso! Vamos analisá-lo nas próximas horas.