sexta-feira, 1 de junho de 2012

Como trabalhar com várias unidades de uma vez

De vez em quando precisamos fazer uma mesma coisa para várias unidades ao mesmo tempo. Por exemplo, eu tenho 10 footmans em um local do meu mapa, quando já tiver 2 segundos que o jogo começou todos os footmans vão morrer. Quando eu comecei a aprender sobre world editor eu pensaria em fazer uma trigger com 10 Kill Units, um para cada footman. Para nossa alegria, existe os Unit Groups (grupos de unidade), com eles trabalhar com várias unidades fica muito mais fácil.
Vamos denovo tentar matar nossos 10 footman, só que dessa vez de maneira mais fácil. Usaremos a action Pick Every Unit In Unit Group para agrupar todos os footmans e mata-los. Veja a trigger:

O evento ali faz a trigger executar automaticamente quando já estiver passado 2 segundos que o jogo começou (depois de terminar de carregar).
Nas actions, usamos o Pick Every Unit para agrupar todas "Units owned by Player 1 of type Footman", ou seja, todos os footmans que pertencem ao player 1. Em Loop - Actions, são as actions que acontece para cada unidade no grupo. O Picked unit referece à uma unidade do grupo de cada vez, ou seja, quando o Loop executar na primeira vez o Picked Unit será o primeiro footman do grupo, depois ele será o segundo, depois o terceiro e assim até o ultimo footman.

A linha acima do Pick Every Unit, aquele custom script, significa que queremos destruir o grupo depois que usa-lo. Por que se não destruirmos ele, ele vai ficará ocupando espaço na memória desnecessáriamente, o que conhecemos por Memory Leaks.

Bom galera é só isso, é bem simples assim mesmo. Voce não precisa necessáriamente usa-lo para matar unidades, pode usa-lo para teleporta muitas unidades de um lugar para outro, por exemplo.

Estou colocando um link para download de um mapa de exemplo, nele vocês podem notar que os footmans vão morrer todos ao mesmo tempo, isso por que o Pick Every Unit executa muito rápido.



Até a próxima galera!

Nenhum comentário:

Postar um comentário