
O prefixo (ponteiro, objeto-referencia) para os elementos da Classe (em JavaSript) será:
animation
Existem exceções, que apresentamos abaixo.
PROPRIEDADES
wrapMode = wrapMode.Loop Define sequenciamento de todas as animações do gameobject.
wrapMode.Once PingPong retorna do fim ao início etc. Usando o prefixo:
wrapMode.PingPong animation["nome"], vale só para essa animação.
isPlaying Conterá booleano. Vale para todas as animações. Existe método para
especificar uma animação.
animation["nome"].layer = n; Se queremos que uma animação não-loop se sobreponha
a outra (mas não a interrompa) a definimos com um layer maior.
Default é zero. Repare que o prefixo é exceção.
Stop() Na realidade não é só para parar a animação atual desse gameobject
mas para reenrolar todas e preparar para início. Muito usado
no Start().
Rewind("nome")
isPlaying("nome") Retorna booleano.
Play("nome") Só usar quando tiver apenas uma animação isolada.
CrossFade("nome") Roda a animação com transição suave da anterior, que é interrompida.
CrossFadeQueued("nome",0.3,QueueMode.CompleteOthers) Roda a animação só quando anterior termina.
Como nosso "demiurgo" só tem uma animação, não usamos muitos elementos dessa Classe. A primeira citação é:
Um uso interessante foi no script que controlava o avatar em jogos multiplayer, como parte de uma RPC:
Também nessa lição, como o avatar não tinha animação "idle", usamos um wrapMode.Once.
COMENTÁRIOS ADICIONAIS
A Unity Tec disponibiliza em um de seus tutoriais um modelo que você pode baixar (rightclique) para treinar o uso dessa Classe:
IMPORTANTE: Esse modelo foi desenvolvido pela Unity Tec e não é licenciado Creative Commons (como o material "normal" de nosso site) donde só pode ser usado segundo as regras de licença da Unity Tec para assets que fazem parte de seus tutoriais. Procure se informar sobre esse assunto, se não for usá-lo apenas particularmente para exercícios desse curso.
Usando essas três animações, como poderíamos programar para o jogador fazer o modelo andar com teclas de setas e atirar quando se apertar a tecla "t"?
Veja o script:
function Start(){
//É usual se colocar todas as animações do gameobject em loop
animation.wrapMode = WrapMode.Loop;
//e tirar de loop só aquelas exceções
animation["shoot"].wrapMode = WrapMode.Once;
//Para a animação do tiro se sobrepor a ativa, sem interrompê-la
animation["shoot"].layer = 10;
//Inicializar todas as animações com:
animation.Stop();
}
function Update(){
if(Input.GetAxis("Vertical") > 0.1)
animation.CrossFade("run");
else
animation.CrossFade("idle");
if(Input.GetKeyDown ("t"))
animation.CrossFade("shoot");
}
Brinque com nossa demo (clique para ativar), que tem script acima. Atire (com "t") mantendo a tecla de "andar" pressionada para ver a sobreposição.(Demo testada no IE com plugin já instalado.)
Nessa outra demo (clique para ativar), usamos o mesmo script. Tem "controle do avatar" mas não "camera-follow". Atenção: ele demora a girar e não anda para trás! Tem som do tiro.:
LIÇÃO ANTERIOR PRÓXIMA LIÇÃO ÍNDICE HOME PAGE
