Animação não esta ativando na hora do pulo
3 participantes
Página 1 de 1
Animação não esta ativando na hora do pulo
Opa, então quando pulo a animação não esta funcionando, ja desmarquei os Exit Time das transição ta tudo certo lá no animator só que não esta rodando alguem pode me ajuda? Segue o codigo (C#)
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Player : MonoBehaviour {
public Animator ControlPlayer;
public static bool noChao;
public static bool CaixaEncostou;
bool PodePular;
int jumpSpeed = 4;
void Start () {
ControlPlayer = GetComponent<Animator> ();
PodePular = true;
noChao = true;
}
void Update () {
ControlPlayer.SetBool ("Run", false);
ControlPlayer.SetBool ("Jump", false);
if(noChao == true){
// Frente Correr
if (Input.GetKey (KeyCode.W)) {
Running ();
}
//Tras Correr
if (Input.GetKey (KeyCode.S)) {
Running ();
}
//Esquerda Correr
if (Input.GetKey (KeyCode.D)) {
Running ();
}
//Direita Correr
if (Input.GetKey (KeyCode.A)) {
Running ();
}
}
//Pular
if(PodePular == true && noChao == true){
if (Input.GetKeyDown (KeyCode.Space) && Input.GetKey(KeyCode.W) ||
Input.GetKeyDown (KeyCode.Space) && Input.GetKey(KeyCode.A) ||
Input.GetKeyDown (KeyCode.Space) && Input.GetKey(KeyCode.S) ||
Input.GetKeyDown (KeyCode.Space) && Input.GetKey(KeyCode.D)) {
GetComponent<Rigidbody>().velocity += jumpSpeed * Vector3.up;
Jumping ();
StartCoroutine ("TempoDePulo");
PodePular = false;
noChao = false;
}
}
//Empurrar caixa
if (CaixaEncostou == true && Input.GetKey ("f")) {
ControlPlayer.SetBool ("Push", true);
} else if (CaixaEncostou == false) {
ControlPlayer.SetBool ("Push", false);
}
}
public void Jumping (){
ControlPlayer.SetBool ("Jump", true);
}
public void Running (){
ControlPlayer.SetBool ("Run", true);
}
void OnTriggerEnter(Collider col){
if (col.gameObject.tag == "Caixa") {
CaixaEncostou = true;
}
}
void OnTriggerExit(Collider col){
if (col.gameObject.tag == "Caixa") {
CaixaEncostou = false;
}
}
void OnCollisionEnter(Collision other){
if (other.gameObject.tag == "floor") {
noChao = true;
}
}
void OnCollisionExit(Collision other){
if (other.gameObject.tag == "floor") {
noChao = false;
}
}
IEnumerator TempoDePulo (){
yield return new WaitForSeconds (1);
PodePular = true;
}
}
Última edição por Junim em Qui Mar 16, 2017 8:41 pm, editado 2 vez(es)
Re: Animação não esta ativando na hora do pulo
Junim escreveu:Opa, então quando pulo a animação não esta funcionando, ja desmarquei os Exit Time das transição ta tudo certo lá no animator só que não esta rodando alguem pode me ajuda? Segue o codigo (C#)
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Player : MonoBehaviour {
public Animator ControlPlayer;
public static bool noChao;
public static bool CaixaEncostou;
bool PodePular;
int jumpSpeed = 4;
void Start () {
ControlPlayer = GetComponent<Animator> ();
PodePular = true;
noChao = true;
}
void Update () {
ControlPlayer.SetBool ("Run", false);
ControlPlayer.SetBool ("Jump", false);
if(noChao == true){
// Frente Correr
if (Input.GetKey (KeyCode.W)) {
Running ();
}
//Tras Correr
if (Input.GetKey (KeyCode.S)) {
Running ();
}
//Esquerda Correr
if (Input.GetKey (KeyCode.D)) {
Running ();
}
//Direita Correr
if (Input.GetKey (KeyCode.A)) {
Running ();
}
}
//Pular
if(PodePular == true && noChao == true){
if (Input.GetKeyDown (KeyCode.Space) && Input.GetKey(KeyCode.W) ||
Input.GetKeyDown (KeyCode.Space) && Input.GetKey(KeyCode.A) ||
Input.GetKeyDown (KeyCode.Space) && Input.GetKey(KeyCode.S) ||
Input.GetKeyDown (KeyCode.Space) && Input.GetKey(KeyCode.D)) {
GetComponent<Rigidbody>().velocity += jumpSpeed * Vector3.up;
Jumping ();
StartCoroutine ("TempoDePulo");
PodePular = false;
noChao = false;
}
}
//Empurrar caixa
if (CaixaEncostou == true && Input.GetKey ("f")) {
ControlPlayer.SetBool ("Push", true);
} else if (CaixaEncostou == false) {
ControlPlayer.SetBool ("Push", false);
}
}
public void Jumping (){
ControlPlayer.SetBool ("Jump", true);
}
public void Running (){
ControlPlayer.SetBool ("Run", true);
}
void OnTriggerEnter(Collider col){
if (col.gameObject.tag == "Caixa") {
CaixaEncostou = true;
}
}
void OnTriggerExit(Collider col){
if (col.gameObject.tag == "Caixa") {
CaixaEncostou = false;
}
}
void OnCollisionEnter(Collision other){
if (other.gameObject.tag == "floor") {
noChao = true;
}
}
void OnCollisionExit(Collision other){
if (other.gameObject.tag == "floor") {
noChao = false;
}
}
IEnumerator TempoDePulo (){
yield return new WaitForSeconds (1);
PodePular = true;
}
}
Gabriel César O- Profissional
- PONTOS : 3986
REPUTAÇÃO : 217
Idade : 23
Áreas de atuação : (ESTUDANDO SEGUNDO GRAU), (FUÇANDO NO UNITY)){
Respeito as regras :
Re: Animação não esta ativando na hora do pulo
O animator esta tudo ok, o problema eu acho que é no script..
Re: Animação não esta ativando na hora do pulo
manda prints do seu Animator... precisamos saber como você criou as condições, se é float, int, se está usando equals, less, etc,e tc
Tópicos semelhantes
» Sistema de Pulo está dando erro.
» Ajuda com a animação do pulo
» Como saber se uma animação esta tocando ou se já acabou de tocar.
» [DÚVIDA] ANIMAÇÃO DE PULO NO CONTROLADOR QUE TEM BLEND TREE COM MOVIMENTO
» Animação não está a funcionar
» Ajuda com a animação do pulo
» Como saber se uma animação esta tocando ou se já acabou de tocar.
» [DÚVIDA] ANIMAÇÃO DE PULO NO CONTROLADOR QUE TEM BLEND TREE COM MOVIMENTO
» Animação não está a funcionar
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos