[RESOLVIDO] DUVIDAS EM SCRIPT DE CONTROLE DE ANIMAÇÕES 2D
3 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
[RESOLVIDO] DUVIDAS EM SCRIPT DE CONTROLE DE ANIMAÇÕES 2D
BOA TARDE GALERA
É o seguinte:
meu player quando eu aperto o botão de andar e logo depois eu aperto o botão de atacar com o botão de andar ainda pressionado eu queria que meu player parasse de fazer a animação andando e fizesse a animação atacando mesmo se o botão de andar ainda esteja pressionado
vou deixar meu script logo abaixo:
É o seguinte:
meu player quando eu aperto o botão de andar e logo depois eu aperto o botão de atacar com o botão de andar ainda pressionado eu queria que meu player parasse de fazer a animação andando e fizesse a animação atacando mesmo se o botão de andar ainda esteja pressionado
vou deixar meu script logo abaixo:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Player_Controller : MonoBehaviour {
public GameObject Player;
public Rigidbody2D PlayerRb;
public Animator Anim;
public Transform PlayerTrans;
public int ForceDash;
public int ForceDash2;
public bool andando;
public bool atack;
public bool poder;
public bool cutuvelada;
public bool barrigada;
public float poderTemp;
public float cutuveladaTemp;
public float barrigadaTemp;
public float TimeTemp;
public float velocidade;
private bool facingRight = true;
private float hForce = 0;
private bool morto = false;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
if (!morto) {
if (Input.GetButton ("atacando")) {
atack = true;
poder = false;
cutuvelada = false;
barrigada = false;
andando = false;
}
else if (Input.GetButtonUp ("atacando")) {
atack = false;
}
if (Input.GetButtonDown ("poder")) {
poder = true;
atack = false;
cutuvelada = false;
barrigada = false;
andando = false;
TimeTemp = 0;
velocidade = 0;
}
if (Input.GetButtonDown ("cutuvelada")) {
PlayerRb.AddForce (new Vector2 (ForceDash2, 0));
cutuvelada = true;
poder = false;
atack = false;
barrigada = false;
andando = false;
TimeTemp = 0;
velocidade = 0;
}
if (Input.GetButtonDown ("barrigada")) {
PlayerRb.AddForce (new Vector2 (ForceDash, 0));
barrigada = true;
poder = false;
cutuvelada = false;
atack = false;
andando = false;
TimeTemp = 0;
velocidade = 0;
}
if (poder == true) {
TimeTemp += Time.deltaTime;
if (TimeTemp >= poderTemp) {
poder = false;
velocidade = 4;
}
}
if (barrigada == true) {
TimeTemp += Time.deltaTime;
if (TimeTemp >= barrigadaTemp) {
barrigada = false;
velocidade = 4;
}
}
if (cutuvelada == true) {
TimeTemp += Time.deltaTime;
if (TimeTemp >= cutuveladaTemp) {
cutuvelada = false;
velocidade = 4;
}
}
Anim.SetBool ("Andando", andando);
Anim.SetBool ("Atacando", atack);
Anim.SetBool ("Poder", poder);
Anim.SetBool ("Cutuvelada", cutuvelada);
Anim.SetBool ("Barrigada", barrigada);
}
}
private void FixedUpdate () {
if (!morto)
{
hForce = Input.GetAxisRaw("Horizontal");
PlayerRb.velocity = new Vector2 (hForce * velocidade, PlayerRb.velocity.y);
if (hForce > 0 && !facingRight) {
Flip ();
}
else if (hForce < 0 && facingRight)
{
Flip ();
}
if (Input.GetButton ("Horizontal")) {
andando = true;
}
if (Input.GetButtonUp ("Horizontal")) {
andando = false;
}
}
}
void Flip ()
{
facingRight = !facingRight;
Vector3 scale = PlayerTrans.localScale;
scale.x *= -1;
PlayerTrans.localScale = scale;
ForceDash *= -1;
ForceDash2 *= -1;
}
}
FernandoViniciusSchultz- Iniciante
- PONTOS : 2581
REPUTAÇÃO : 2
Idade : 20
Respeito as regras :
Re: [RESOLVIDO] DUVIDAS EM SCRIPT DE CONTROLE DE ANIMAÇÕES 2D
tenta colocar no script de atacar if == atacar, andar = false
gui-tk9- Membro
- PONTOS : 3376
REPUTAÇÃO : 1
Respeito as regras :
Re: [RESOLVIDO] DUVIDAS EM SCRIPT DE CONTROLE DE ANIMAÇÕES 2D
acabei de colocar continua a mesma coisa
FernandoViniciusSchultz- Iniciante
- PONTOS : 2581
REPUTAÇÃO : 2
Idade : 20
Respeito as regras :
Re: [RESOLVIDO] DUVIDAS EM SCRIPT DE CONTROLE DE ANIMAÇÕES 2D
Vc está criando um conflito no Update Eno Fixed. Um vc manda ficar true enquanto está apertado o Horizontal, emanada ficar false se estiver atacando. Aí fica true e falar seguidamente. Crie mais uma condição no if get Horizontal. Pode ser um bool autorizadoAbdar.
Q deve ser false qndo realizar outros movimentos e receber true qndo não estiver realizando. Aí usa
if (Input.GetButton ("Horizontal")&& autorizadoAndar) {
andando = true;
}
Q deve ser false qndo realizar outros movimentos e receber true qndo não estiver realizando. Aí usa
if (Input.GetButton ("Horizontal")&& autorizadoAndar) {
andando = true;
}
Tiago95- Avançado
- PONTOS : 2629
REPUTAÇÃO : 32
Respeito as regras :
Re: [RESOLVIDO] DUVIDAS EM SCRIPT DE CONTROLE DE ANIMAÇÕES 2D
Mais um detalhe, função para andar vc coloca dentro do Update, esse if q falo, pra não dar delay. E outra coisa, seu hForce está sem nenhuma condição a não ser o não está morto. Isso faz com q se vc continua apertando o botão Horizontal, ele vai continuar andando p lado. Se vc não quiser isso, tem q colocar um IF nele. Pode usar esse autorizadoAndar como condição. Boa sorte amigo, ansioso p ver seria projeto funcionando. Bons trabalhos!
Tiago95- Avançado
- PONTOS : 2629
REPUTAÇÃO : 32
Respeito as regras :
Tiago95- Avançado
- PONTOS : 2629
REPUTAÇÃO : 32
Respeito as regras :
Re: [RESOLVIDO] DUVIDAS EM SCRIPT DE CONTROLE DE ANIMAÇÕES 2D
Pó cara vou ser sincero eu tenho 12 anos e nunca programei na minha vida eu tou a duas semanas pesquisando como programar meu jogo em C# até que eu tou indo bem mas eu não intendo muito tem como vc dar uma olhada no meu script e modificar ele pra ele não ficar bugado
tipo assim eu ja testei colocar autorizado a anda e fiz do geito que vc disse e funcionou mas meu player não que fazer mas a animação de andar e eu percebi que eu tenho que retorna essa variavel "autorizadoandar" em outro canto mas eu não sei onde tem como vc me da so mais uma forcinha
pode modificar meu script a vontade se vc quiser
tipo assim eu ja testei colocar autorizado a anda e fiz do geito que vc disse e funcionou mas meu player não que fazer mas a animação de andar e eu percebi que eu tenho que retorna essa variavel "autorizadoandar" em outro canto mas eu não sei onde tem como vc me da so mais uma forcinha
pode modificar meu script a vontade se vc quiser
FernandoViniciusSchultz- Iniciante
- PONTOS : 2581
REPUTAÇÃO : 2
Idade : 20
Respeito as regras :
Re: [RESOLVIDO] DUVIDAS EM SCRIPT DE CONTROLE DE ANIMAÇÕES 2D
manda aí o atual
Tiago95- Avançado
- PONTOS : 2629
REPUTAÇÃO : 32
Respeito as regras :
Re: [RESOLVIDO] DUVIDAS EM SCRIPT DE CONTROLE DE ANIMAÇÕES 2D
eu fui testando as formas de retorna a varialvel autorizadoAndar que vc disse pra eu fazer e acabei conseguindo
valeu
funciono perfeitamente obrigado pela dica
valeu
- Código:
ublic class Player_Controller : MonoBehaviour {
public GameObject Player;
public Rigidbody2D PlayerRb;
public Animator Anim;
public Transform PlayerTrans;
public int ForceDash;
public int ForceDash2;
private bool andando;
private bool atack;
private bool poder;
private bool cutuvelada;
private bool barrigada;
public float poderTemp;
public float cutuveladaTemp;
public float barrigadaTemp;
public float TimeTemp;
public float velocidade;
private bool facingRight = true;
private float hForce = 0;
private bool morto = false;
public bool autorizadoAndar;
// Use this for initialization
void Start () {
autorizadoAndar = true;
}
// Update is called once per frame
void Update () {
if (!morto) {
if (Input.GetButton ("Horizontal") && autorizadoAndar) {
andando = true;
}
if (Input.GetButtonUp ("Horizontal")) {
andando = false;
}
if (Input.GetButton ("atacando")) {
atack = true;
poder = false;
cutuvelada = false;
barrigada = false;
andando = false;
autorizadoAndar = false;
}
else if (Input.GetButtonUp ("atacando"))
{
atack = false;
autorizadoAndar = true;
}
if (Input.GetButtonDown ("poder")) {
poder = true;
atack = false;
cutuvelada = false;
barrigada = false;
andando = false;
autorizadoAndar = false;
TimeTemp = 0;
velocidade = 0;
}
if (Input.GetButtonDown ("cutuvelada")) {
PlayerRb.AddForce (new Vector2 (ForceDash2, 0));
cutuvelada = true;
poder = false;
atack = false;
barrigada = false;
andando = false;
autorizadoAndar = false;
TimeTemp = 0;
velocidade = 0;
}
if (Input.GetButtonDown ("barrigada")) {
PlayerRb.AddForce (new Vector2 (ForceDash, 0));
barrigada = true;
poder = false;
cutuvelada = false;
atack = false;
andando = false;
autorizadoAndar = false;
TimeTemp = 0;
velocidade = 0;
}
if (poder == true) {
TimeTemp += Time.deltaTime;
if (TimeTemp >= poderTemp) {
poder = false;
velocidade = 4;
autorizadoAndar = true;
}
}
if (barrigada == true) {
TimeTemp += Time.deltaTime;
if (TimeTemp >= barrigadaTemp) {
barrigada = false;
velocidade = 4;
autorizadoAndar = true;
}
}
if (cutuvelada == true) {
TimeTemp += Time.deltaTime;
if (TimeTemp >= cutuveladaTemp) {
cutuvelada = false;
velocidade = 4;
autorizadoAndar = true;
}
}
Anim.SetBool ("Andando", andando);
Anim.SetBool ("Atacando", atack);
Anim.SetBool ("Poder", poder);
Anim.SetBool ("Cutuvelada", cutuvelada);
Anim.SetBool ("Barrigada", barrigada);
}
}
private void FixedUpdate () {
if (!morto)
{
hForce = Input.GetAxisRaw("Horizontal");
PlayerRb.velocity = new Vector2 (hForce * velocidade, PlayerRb.velocity.y);
if (hForce > 0 && !facingRight) {
Flip ();
}
else if (hForce < 0 && facingRight)
{
Flip ();
}
}
}
void Flip () {
facingRight = !facingRight;
Vector3 scale = PlayerTrans.localScale;
scale.x *= -1;
PlayerTrans.localScale = scale;
ForceDash *= -1;
ForceDash2 *= -1;
}
}
funciono perfeitamente obrigado pela dica
FernandoViniciusSchultz- Iniciante
- PONTOS : 2581
REPUTAÇÃO : 2
Idade : 20
Respeito as regras :
Re: [RESOLVIDO] DUVIDAS EM SCRIPT DE CONTROLE DE ANIMAÇÕES 2D
Maravilha, isso ae. tacalepau. Qualquer coisa so mandar q a galera ta aí pra isso. Se quiser montar equipe pra projeto estamos aí tbm. flw
Tiago95- Avançado
- PONTOS : 2629
REPUTAÇÃO : 32
Respeito as regras :
Tópicos semelhantes
» [RESOLVIDO] Animações no script
» [RESOLVIDO] Script para startar animações
» [TUTORIAL] Controle 3ª pessoa com animações mecânicas (root motion)
» Animaçoes com script
» Dúvidas Script
» [RESOLVIDO] Script para startar animações
» [TUTORIAL] Controle 3ª pessoa com animações mecânicas (root motion)
» Animaçoes com script
» Dúvidas Script
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos