quarta-feira, 6 de abril de 2016

Compêndio BP: MultiLineTraceByChannel

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.



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 IgnoreDraw Debug Type e Ignore SelfSã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.


Clique para aumentar


A Macro TraceLocationFPS calcula as posições usadas no Trace baseado na câmera usada pelo jogador.

Clique para aumentar