MultiLineTraceByChannel
A função MultiLineTraceByChannel possui duas diferenças em relação a função LineTraceForObjects. Ela fornece como saída um Array que pode conter vários elementos como resultado da colisão. O teste de colisão é baseado no "Trace Channel". Observe nos detalhes de um StaticMeshActor, em "Trace Responses", é definido como um objeto vai responder ao teste de trace nos canais "Visibility" e "Camera".
Por exemplo, um material transparente, vai definir o "Visibility" como "Overlap", porque ele pode ser visto e não bloqueia a linha de visão. A função encerra imediatamente se for encontrado um objeto com "Block" para o Trace Channel usado.
Por exemplo, um material transparente, vai definir o "Visibility" como "Overlap", porque ele pode ser visto e não bloqueia a linha de visão. A função encerra imediatamente se for encontrado um objeto com "Block" para o Trace Channel usado.
Entrada
- Start: Vetor que define o início da linha que será usada para o teste de colisão.
- End: Vetor que define o fim da linha de teste de colisão.
- Trace Channel: Canal usado para o teste de colisão. Pode ser "Visibility" ou "Camera".
- Trace Complex, Actors to Ignore, Draw Debug Type e Ignore Self: São os mesmos parâmetros usados na função LineTraceForObjects.
Saída
- Out Hits: Array de estrutura "HitResult" contendo as colisões que foram encontradas.
- Return Value: Valor booleano. Se for verdadeiro, significa que uma colisão foi encontrada.
Exemplo de Uso:
O jogador possui um dispositivo que é acionado usando a tecla "Enter". Este dispositivo usa a função MultiLineTraceByChannel para pegar os objetos visíveis e adicionar a um sistema de radar que o jogador possui.
A Macro TraceLocationFPS calcula as posições usadas no Trace baseado na câmera usada pelo jogador.
Clique para aumentar |
Clique para aumentar |