Personagem acionar animação após cair / saltar de determinada altura
2 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Personagem acionar animação após cair / saltar de determinada altura
Preciso fazer que meu PLAYER ao cair no Chão de uma determinada altura ele execute uma animação (rolamento).
Estou tentando: Calcular a altura do Chão (Terreno) com a do Personagem, se for maior ou igual a X faz a animação.
Estou tentando: Calcular a altura do Chão (Terreno) com a do Personagem, se for maior ou igual a X faz a animação.
azool- Membro
- PONTOS : 2705
REPUTAÇÃO : 6
Respeito as regras :
Re: Personagem acionar animação após cair / saltar de determinada altura
azool escreveu:Preciso fazer que meu PLAYER ao cair no Chão de uma determinada altura ele execute uma animação (rolamento).
Estou tentando: Calcular a altura do Chão (Terreno) com a do Personagem, se for maior ou igual a X faz a animação.
- Código:
using UnityEngine;
using System.Collections;
public class ExampleClass : MonoBehaviour {
void Update() {
CharacterController Personagem= GetComponent<CharacterController>();
if (Personagem.isGrounded){//checa se o personagem está em contato com o chão.
temp = posicaoAtual; //Armazena a posição atual
ultimaPosicao = temp; //Ultima posicao pega onde você estava quando tocou no chão pela ultima vez
posicaoAtual = this.transform.position; //Assim que toca de novo, a posicao atual recebe tua posição nesse momento
if(posicaoAtual.y - ultimaPosicao.y > alturadeQueda){ // Se a diferenca da tua posicao antiga, com a atual for maior que X
//ExecutaAnimação
}
}
}
depois, assim que ele caísse, estaria em contato com o chão novamente, verificava se a posição atual, em relação com a ultima é maior que X, se for habilitaria a animação de rolagem.
Esse código é só um esboço da Ideia pra funcionar, crie as variáveis certinhas e respeite a Sintaxe que deve funcionar
Fagner3Designer- Modelador
- PONTOS : 3223
REPUTAÇÃO : 24
Idade : 32
Respeito as regras :
Re: Personagem acionar animação após cair / saltar de determinada altura
Muito obrigado pelo esboço e explicação! Sou iniciante e tenho aprendido muito consultando este site.
azool- Membro
- PONTOS : 2705
REPUTAÇÃO : 6
Respeito as regras :
Re: Personagem acionar animação após cair / saltar de determinada altura
Fiz o teste aqui, e não esta compilando, porque será?
- Código:
using UnityEngine;
using System.Collections;
public class QuedaAnima : MonoBehaviour {
public Vector3 temp;
public Vector3 posicaoAtual;
public Vector3 ultimaPosicao;
public float alturadeQueda;
void Update() {
CharacterController ThirdPersonAnimatorController = GetComponent<CharacterController>();
if (ThirdPersonAnimatorController.isGrounded){ //checa se o personagem está em contato com o chão.
temp = posicaoAtual; //Armazena a posição atual
ultimaPosicao = temp; //Ultima posicao pega onde você estava quando tocou no chão pela ultima vez
posicaoAtual = this.transform.position; //Assim que toca de novo, a posicao atual recebe tua posição nesse momento
if(posicaoAtual.y - ultimaPosicao.y > alturadeQueda){ // Se a diferenca da tua posicao antiga, com a atual for maior que X
//ExecutaAnimação
}
}
}
}
azool- Membro
- PONTOS : 2705
REPUTAÇÃO : 6
Respeito as regras :
Re: Personagem acionar animação após cair / saltar de determinada altura
Estava Dando erro, ai declarei como VECTOR 3,
mas quando coloco o Script no Personagem ou Cena da ERRO.
mas quando coloco o Script no Personagem ou Cena da ERRO.
azool- Membro
- PONTOS : 2705
REPUTAÇÃO : 6
Respeito as regras :
Re: Personagem acionar animação após cair / saltar de determinada altura
O script era apenas como esboço da ideia, não era funcional.
vou tentar fazer uma cena básica e funcional e posto aqui em breve.
vou tentar fazer uma cena básica e funcional e posto aqui em breve.
Fagner3Designer- Modelador
- PONTOS : 3223
REPUTAÇÃO : 24
Idade : 32
Respeito as regras :
Re: Personagem acionar animação após cair / saltar de determinada altura
A sim, entendi.Fagner3Designer escreveu:O script era apenas como esboço da ideia, não era funcional.
vou tentar fazer uma cena básica e funcional e posto aqui em breve.
Mas isso já ajudou a clarear minhas ideias, sou bem iniciante mesmo! Fico muito grato com sua ajuda.
Abraço.
azool- Membro
- PONTOS : 2705
REPUTAÇÃO : 6
Respeito as regras :
Re: Personagem acionar animação após cair / saltar de determinada altura
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Player : MonoBehaviour {
public Vector3 posicaoAtual, ultimaPosicao, temp;
public bool EstaNoChao;
public float AlturaQueda;
public Text textoAltura;
void FixedUpdate(){
ChecaPulo (); //Testa a cada momento se pode calcular a altura da queda
}
void OnTriggerExit(Collider terreno){//Se o objeto sair do chao, por queda ou pulo;
if (terreno.gameObject.tag == "Terreno")//Sair do chao (objeto com a Tag terreno)
{
EstaNoChao = false; //A variavel de controle ativa, para que não fique mudando de valor a todo momento
ultimaPosicao.y = transform.position.y; //Ultimaposicao recebe o valor do tranform do Player
}
}
void OnTriggerEnter(Collider terreno)//Quando tocar no terreno de novo(caiu)
{
posicaoAtual.y = transform.position.y; //Posicao atual recebe a posição que estava nesse momento
}
public void ChecaPulo(){
if ((ultimaPosicao.y - posicaoAtual.y ) > AlturaQueda && EstaNoChao==false) {//Aqui checo se a altura é maior que a alturaQueda, ao mesmo tempo que só executa o codigo se a variavel de controle for falsa
float temp = ultimaPosicao.y - posicaoAtual.y;// Guardo o valor da altura para usar no texto
textoAltura.text = "Você caiu de: " + temp.ToString("F2")+" metros";//passando a altura pro texto;
//Executa Animação
EstaNoChao = true;//muda o valor para que não fique infinitamente executando esse código;
}
}
}
Segue em anexo uma cena que fiz usando esse script, dê uma olhada nela pra ver o que é necessário pro código funcionar.
Preste atenção que o "chão" da cena, precisa ter uma tag chamada "Terreno" para que o código funcione, e algum collider(aqui usei o box no chão e na rampa)
Link da cena:
ReconhecerQueda.zip
Versão da Unity 2017.1.0
Fagner3Designer- Modelador
- PONTOS : 3223
REPUTAÇÃO : 24
Idade : 32
Respeito as regras :
Re: Personagem acionar animação após cair / saltar de determinada altura
Entendendo o Script, você pode fazer o dano ser proporcional a ALTURA, ou setar um limite maximo de queda para morrer, etc... vai da necessidade e criatividade.
Fagner3Designer- Modelador
- PONTOS : 3223
REPUTAÇÃO : 24
Idade : 32
Respeito as regras :
Re: Personagem acionar animação após cair / saltar de determinada altura
Cena Funcionando... Note que mudando a altura da rampa, a altura da queda é registrada de forma diferente.
Fagner3Designer- Modelador
- PONTOS : 3223
REPUTAÇÃO : 24
Idade : 32
Respeito as regras :
Re: Personagem acionar animação após cair / saltar de determinada altura
Uau! Muito Obrigado Novamente!
Hoje o Domingo foi de Estudo e Pesquisa.
Hoje o Domingo foi de Estudo e Pesquisa.
azool- Membro
- PONTOS : 2705
REPUTAÇÃO : 6
Respeito as regras :
Re: Personagem acionar animação após cair / saltar de determinada altura
Disponha! olhe atentamente o Inspector do meu Objeto Player. assim como as Tags utilizadasazool escreveu:Uau! Muito Obrigado Novamente!
Hoje o Domingo foi de Estudo e Pesquisa.
Fagner3Designer- Modelador
- PONTOS : 3223
REPUTAÇÃO : 24
Idade : 32
Respeito as regras :
Tópicos semelhantes
» [RESOLVIDO] Executar animação após um X segundos
» Personagem morrer ao cair da tela
» (Unity2D) Como fazer o personagem cair mais rápido depois do pulo
» Gostaria de fazer a animação do arco seguir animação do personagem
» inimigo não anda após animação
» Personagem morrer ao cair da tela
» (Unity2D) Como fazer o personagem cair mais rápido depois do pulo
» Gostaria de fazer a animação do arco seguir animação do personagem
» inimigo não anda após animação
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos