[RESOLVIDO] ALTERAR A VELOCIDADE APENAS DE UMA ANIMAÇÃO VIA SCRIPT
2 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
[RESOLVIDO] ALTERAR A VELOCIDADE APENAS DE UMA ANIMAÇÃO VIA SCRIPT
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class INIMIGO_IA : MonoBehaviour {
Animator anim;
void Start(){
anim = GetComponent<Animator>();
}
void Update(){
//quero aumentar a velocidade APENAS da animação de ataque:
anim.SetBool("iswalk", true);
//não vale
//GetComponent<Animator>().speed = 2;
//pois aumenta a velocidade de todas as animações
}
Alguém sabe? grato!!
osiasbezerra- Avançado
- PONTOS : 3599
REPUTAÇÃO : 8
Respeito as regras :
Re: [RESOLVIDO] ALTERAR A VELOCIDADE APENAS DE UMA ANIMAÇÃO VIA SCRIPT
Faltou fechar uma chave e a animação está como iswalk, mas é só um detalhe, grato quem puder ajudar.
osiasbezerra- Avançado
- PONTOS : 3599
REPUTAÇÃO : 8
Respeito as regras :
Re: [RESOLVIDO] ALTERAR A VELOCIDADE APENAS DE UMA ANIMAÇÃO VIA SCRIPT
Olá!
Você pode tentar verificar a animação e alterar a velocidade do animator apenas enquanto naquele estado:
(Não testado)
Geralmente eu uso StateMachineBehaviours pra controlar de maneira mais "limpa" alterações relacionadas a estados de animação.
Você pode tentar verificar a animação e alterar a velocidade do animator apenas enquanto naquele estado:
(Não testado)
- Código:
private void Update(){
if (myAnimator.GetCurrentAnimatorStateInfo(0).IsName("AnimationName"))
{
myAnimator.speed = 0.5f;
}
else
{
myAnimator.speed = 1.0f;
}
}
Geralmente eu uso StateMachineBehaviours pra controlar de maneira mais "limpa" alterações relacionadas a estados de animação.
Re: [RESOLVIDO] ALTERAR A VELOCIDADE APENAS DE UMA ANIMAÇÃO VIA SCRIPT
Excelente dica!! eu via o speed do Animation (que faz parte do Animator Controler) e mudava via inspector, mas essa sua dica via script é excelente! vou testar agora, obrigado!!!!!!
osiasbezerra- Avançado
- PONTOS : 3599
REPUTAÇÃO : 8
Respeito as regras :
Re: [RESOLVIDO] ALTERAR A VELOCIDADE APENAS DE UMA ANIMAÇÃO VIA SCRIPT
[list=linenums]
[*]
[/list]
É estranho, não funcionou e daí eu testei o Debug.Log e ele retorna false, mesmo respeitando a camada (layer) "0" e o nome da animação exatamente "isatack" e a animação rodando. Mas você indicou o caminho, eu vou continuar testando aqui! Muito Obrigado!!!
[*]
- Código:
using System.Collections;using System.Collections.Generic;using UnityEngine;
public class INIMIGO_IA : MonoBehaviour { Animator anim;void Start(){ anim = GetComponent<Animator>();}
void Update(){
anim.SetBool("isatack", true); Debug.Log(anim.GetCurrentAnimatorStateInfo(0).IsName("isatack"))
}
}
[/list]
É estranho, não funcionou e daí eu testei o Debug.Log e ele retorna false, mesmo respeitando a camada (layer) "0" e o nome da animação exatamente "isatack" e a animação rodando. Mas você indicou o caminho, eu vou continuar testando aqui! Muito Obrigado!!!
osiasbezerra- Avançado
- PONTOS : 3599
REPUTAÇÃO : 8
Respeito as regras :
Re: [RESOLVIDO] ALTERAR A VELOCIDADE APENAS DE UMA ANIMAÇÃO VIA SCRIPT
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class INIMIGO_IA : MonoBehaviour {
Animator anim;void Start(){
anim = GetComponent<Animator>();
}
void Update(){
anim.SetBool("isatack", true);
Debug.Log(anim.GetCurrentAnimatorStateInfo(0).IsName("isatack"));
}
}
osiasbezerra- Avançado
- PONTOS : 3599
REPUTAÇÃO : 8
Respeito as regras :
Re: [RESOLVIDO] ALTERAR A VELOCIDADE APENAS DE UMA ANIMAÇÃO VIA SCRIPT
Solucionado!!! muito obrigado, artplayer!!! o detalhe que esqueci é
"camadaAtaque" que é o nome da animação e não "isatack", que é a variável de mudança de estado
- Código:
Debug.Log(anim.GetCurrentAnimatorStateInfo(0).IsName("camadaAtaque"));
"camadaAtaque" que é o nome da animação e não "isatack", que é a variável de mudança de estado
osiasbezerra- Avançado
- PONTOS : 3599
REPUTAÇÃO : 8
Respeito as regras :
Re: [RESOLVIDO] ALTERAR A VELOCIDADE APENAS DE UMA ANIMAÇÃO VIA SCRIPT
Show de bola! Valeu pelo feedback.
Tópicos semelhantes
» [RESOLVIDO]Velocidade de animação
» [RESOLVIDO] Como fazer uma ação acontecer apenas após a animação terminar?
» [RESOLVIDO] Script destruir apenas o objeto que o tem
» [RESOLVIDO] alterar a cor da camera via script
» [RESOLVIDO] Alterar Vector1, de PBR Graph via script Unity
» [RESOLVIDO] Como fazer uma ação acontecer apenas após a animação terminar?
» [RESOLVIDO] Script destruir apenas o objeto que o tem
» [RESOLVIDO] alterar a cor da camera via script
» [RESOLVIDO] Alterar Vector1, de PBR Graph via script Unity
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos