Raycast é uma técnica utilizada em gráficos 3D e desenvolvimento de jogos para determinar o primeiro objeto ou superfície que um raio (uma linha reta) intercepta. É amplamente usado para tarefas como detecção de colisão, verificação de linha de visão e interação com objetos.
Em termos simples, consiste em "lançar" um raio imaginário de um ponto inicial em uma direção específica e verificar se ele intersecta algum objeto ou geometria no cenário.
Exemplos de uso:
StartShapeTestLosProbe e StartExpensiveSynchronousShapeTestLosProbeStartShapeTestLosProbe:
Esta função inicia um raycast de forma assíncrona. O resultado deve ser verificado usando GetShapeTestResult, o que pode levar alguns frames para ser concluído. É mais amigável para o desempenho em usos contínuos, pois distribui a carga de trabalho ao longo do tempo.
StartExpensiveSynchronousShapeTestLosProbe:
Esta função realiza o raycast de forma síncrona e retorna o resultado imediatamente. Apesar de ser mais simples para testes rápidos, pode causar gargalos de desempenho, pois bloqueia a execução do código até que a operação seja concluída. É menos indicada para uso frequente.
Diferença principal:
StartShapeTestLosProbe é ideal para verificações assíncronas e contínuas, enquanto
StartExpensiveSynchronousShapeTestLosProbe é mais adequado para verificações pontuais e imediatas, onde o desempenho não é uma preocupação.