Executar ciclo de animação
3 participantes
Página 1 de 1
Executar ciclo de animação
Gostaria saber de como fazer para executar um ciclo de animação de acordo com os clicks que eu dei. Por exemplo:
Ciclo:
Parado -> Attack1
Attack1 -> Attack2
-> Quando der 1 click = executa Attack1
-> Quando der 2 clicks = executa Attack1 logo em seguida Executa Attack2
Tem um canal que o cara faz a execução dessa lógica apenas no Animator, ai eu apaguei a transição de uma animação para outra e criei de novo com as mesmas configurações (exit time e transition duration) mas não funcionou. Gostaria se teria de fazer outra configuração.
Ciclo:
Parado -> Attack1
Attack1 -> Attack2
-> Quando der 1 click = executa Attack1
-> Quando der 2 clicks = executa Attack1 logo em seguida Executa Attack2
Tem um canal que o cara faz a execução dessa lógica apenas no Animator, ai eu apaguei a transição de uma animação para outra e criei de novo com as mesmas configurações (exit time e transition duration) mas não funcionou. Gostaria se teria de fazer outra configuração.
Re: Executar ciclo de animação
Tenta fazer com dois botoes
cria dois parametro Trigger na guia animação com os mesmos nomes do script Attack1,Attack2.
DICA:
Na transicao para o atack desative a opção Has Exit Time e na transição de volta deixe ativado assim não corta a animção no meio.
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Teste : MonoBehaviour {
void Start ()
{
}
void Update ()
{
if(Input.GetButtonDown("Fire1"))
{
GetComponent<Animator>().SetTrigger("Attack1",true);
}
if(Input.GetButtonDown("Fire2"))
{
GetComponent<Animator>().SetTrigger("Attack2",true);
}
}
}
cria dois parametro Trigger na guia animação com os mesmos nomes do script Attack1,Attack2.
DICA:
Na transicao para o atack desative a opção Has Exit Time e na transição de volta deixe ativado assim não corta a animção no meio.
Zecandy- Mestre
- PONTOS : 3505
REPUTAÇÃO : 155
Idade : 42
Respeito as regras :
Re: Executar ciclo de animação
Eu ja fiz um envolvendo a logica manual que funcionou corretamente envolvendo quantidade de attacks e um timer, mas ficou um pouco extenso. Eu gostaria de aprender o modo que citei só por curiosidade e aprendizagem
Re: Executar ciclo de animação
Tem o video que viu me passa o link.
Zecandy- Mestre
- PONTOS : 3505
REPUTAÇÃO : 155
Idade : 42
Respeito as regras :
Re: Executar ciclo de animação
Talvez o problema seja nessa transição:
Quando da um click, ele executa e volta(creio que seja isso) e quando da dois clicks ele joga um parâmetro para efetuar o segundo ataque... Talvez, a primeira transição é sempre invocada e nesse caso nunca chega na segunda.
Quando da um click, ele executa e volta(creio que seja isso) e quando da dois clicks ele joga um parâmetro para efetuar o segundo ataque... Talvez, a primeira transição é sempre invocada e nesse caso nunca chega na segunda.
Re: Executar ciclo de animação
Mas e a animação de volta? Elas tem as mesma condições, mas qual a condição que acontece naquela transição e qual a condição para a transição que passa para o ataque 2? De detalhes e prints sobre como está acontecendo e o que você quer com o máximo de detalhes que conseguimos te ajudar facilmente!
Re: Executar ciclo de animação
Transições das animações
Idle -> Attack 1
Condição: Trigger Attack
Has exit time: desabilitado
Attack1 -> Idle
Condição: sem condição
Has exit time: habilitado
Attack1 -> Attack2
Condição: Trigger Attack
Attack2 -> Idle
Condição: sem condição
Has exit time: habilitado
Obs: na transição da animação Attack1 -> Attack2, se eu deixar Has exit time desabilitado, ocorre a transição de Attack1 para Attack2, mas com um problema, a animação de Attack1 quebra no meio e logo em seguida executa Attack2.
Se eu deixar Has exit time habilitado, a transição não ocorre.
Idle -> Attack 1
Condição: Trigger Attack
Has exit time: desabilitado
Attack1 -> Idle
Condição: sem condição
Has exit time: habilitado
Attack1 -> Attack2
Condição: Trigger Attack
Attack2 -> Idle
Condição: sem condição
Has exit time: habilitado
Obs: na transição da animação Attack1 -> Attack2, se eu deixar Has exit time desabilitado, ocorre a transição de Attack1 para Attack2, mas com um problema, a animação de Attack1 quebra no meio e logo em seguida executa Attack2.
Se eu deixar Has exit time habilitado, a transição não ocorre.
Re: Executar ciclo de animação
Pelo que vejo, provavelmente é o Attack1 -> Idle, que ta com o has exit time ligado e por isso ele quando executa, retorna de volta para idle. Eu Recomendo, usar um bool da transição do Attack1 -> Attack2, que nesse caso, quando desse o segundo click, ele ativasse a bool(enquanto o trigger do Attack1 já foi chamado), esperasse tocar a primeira animação, dai ele checa se o bool tá ativo no Attack -> Idle, se não tiver ele volta para idle, se estiver ativo, ele vai para o attack2 e depois desativa... Pois o trigger quando ativo se não estiver pronto para a transição, ele não executa e por isso não vai para o Attack1 -> Attack2 e a animação está com o parâmetro has exit está ativo para de volta pro idle, isso acontece. Na questão de cortar ao meio, ajuste os valores Transition Duration e Transition Offset e se tiver o Has Exit time ativo, o Exit time também e ajeite de acordo...
Re: Executar ciclo de animação
Uma coisa que estou percebendo é que:
A transição de Attack1 -> Idle e Attack1 -> Attack2 estão marcados com Has Exit Time e mesmo ativando a Trigger Attack no tempo de execução da animação Attack1, o Animator está optando para a saída da animação Idle
A transição de Attack1 -> Idle e Attack1 -> Attack2 estão marcados com Has Exit Time e mesmo ativando a Trigger Attack no tempo de execução da animação Attack1, o Animator está optando para a saída da animação Idle
Re: Executar ciclo de animação
Clique na animação Attack1 e reorganize, para que a transição do Attack1 -> Attack2 seja priorizada(a primeira), acho que pode lhe ajudar!
Re: Executar ciclo de animação
Boa mano :D
Antes de você ter falado eu tinha feito uma manha de:
O Exit time de Attack1 -> Idle = 1 -> 100% da animação
Exit time de Attack1 -> Attack2 0.9 -> 90% da animação
Isso faria com que saísse para animação do Attack2
Mas tu já conseguiu, valeu mesmo :D :D
Antes de você ter falado eu tinha feito uma manha de:
O Exit time de Attack1 -> Idle = 1 -> 100% da animação
Exit time de Attack1 -> Attack2 0.9 -> 90% da animação
Isso faria com que saísse para animação do Attack2
Mas tu já conseguiu, valeu mesmo :D :D
Tópicos semelhantes
» executar animaçao
» Executar animação via script
» Erro ao tentar executar animação
» (Animator)Voltar a um estado de animação mais nao executar a mesma
» Executar Animação enquanto pressionar shift
» Executar animação via script
» Erro ao tentar executar animação
» (Animator)Voltar a um estado de animação mais nao executar a mesma
» Executar Animação enquanto pressionar shift
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos