quinta-feira, 27 de abril de 2017

Compêndio BP 3: Random Point in Bounding Box

Random Point in Bounding Box


Função que retorna um vetor representando um ponto aleatório localizado dentro de um volume especificado por um ponto de origem e um "Box Extent". 

Entrada

  • Origin:  Vetor que representa a posição central do "Box Extent".
  • Box Extent: Vetor que contém as dimensões da caixa que define o volume 3D.

Saída

  • Return Value: Vetor representando um ponto que foi gerado aleatoriamente dentro do "Box Extent" informado.


Exemplo de uso: 

A imagem abaixo é de um "Level Blueprint". No nível foi colocado um "Box Trigger" com o nome "SpawnArea" para definir uma área onde serão criados itens em posições aleatórias dentro desta área. Quando iniciar o jogo, a ação "ForLoop" repete a ação "SpawnActor" por 20 vezes para criar 20 itens em posições aleatórias. A posição de cada item é obtida com a função "Random Point in Bounding Box" usando o "Origin" e "Box Extent" do "Spawn Area".

Clique para aumentar 

A ação "SpawnActor" precisa de um estrutura do tipo "Transform" para aplicar no ator que será criado. Ao tentar ligar um vetor a um "Transform" o editor automaticamente cria um conversor usando o vetor como "Location". Os outros atributos do "Transform" ficam com seus valores padrões.

No parâmetro "Collision Handling Override" do "SpawnActor" foi usado a opção "Try to Adjust Location, But Always Spawn". Isto faz com que o "SpawnActor" verifique se há algum obstáculo na posição onde será criado o ator. Se houver, o ator será movido para um local próximo sem obstáculo.