Buttoes UI? (funciona e param de funcionar?)
3 participantes
Página 1 de 1
Buttoes UI? (funciona e param de funcionar?)
Boa tarde amigos estou aqui com um probleminha fiz um sistema para meu personagem usando Buttoes UI
da Unity (Andar,Pular e Atacar) tudo em 1 script os butoes de Atack funciona mais quando eu ando ele para de funcionar entao tentei separar do scripts mais continua do mesmo jeito?
Script de movimento
Script de Atacar
da Unity (Andar,Pular e Atacar) tudo em 1 script os butoes de Atack funciona mais quando eu ando ele para de funcionar entao tentei separar do scripts mais continua do mesmo jeito?
Script de movimento
- Código:
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using UnityEngine.EventSystems;
using UnityEngine.SceneManagement;
[RequireComponent(typeof(Rigidbody))]
[RequireComponent(typeof(CapsuleCollider))]
public class MovimentoBotao : MonoBehaviour{
//Auxiliar para movimento
private float auxiliarVertical;
private float auxiliarHorizontal;
//Velocidade input
public float velocidade;
//Animator
private Animator anim;
//Status de morte
public static bool Dead = false;
void Start(){
anim = GetComponent<Animator>();
}
void Update(){
if(Dead == true){//Jogador morreu
Morreu();
}
}
public void Morreu(){
anim.SetBool("dead",true);
Invoke("ReloadScene", 3f);
}
void ReloadScene()
{
anim.SetBool("dead",false);
SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
Dead = false;
}
void FixedUpdate (){
if(auxiliarVertical != 0){
transform.Translate(0,0,velocidade*Time.deltaTime*auxiliarVertical);
anim.SetFloat("speed",auxiliarVertical);
}
if(auxiliarHorizontal != 0){
transform.Rotate(0,velocidade*Time.deltaTime*auxiliarHorizontal*50,0);
anim.SetFloat("direction",auxiliarHorizontal);
}
}
public void movimentoVerticalFrente(float velo)//frente
{
auxiliarVertical = velo;
anim.SetFloat("speed",auxiliarVertical);
}
public void movimentoVerticalTraz(float velo)//Traz
{
auxiliarVertical = velo;
anim.SetFloat("speed",auxiliarVertical);
}
public void movimentoHorizontal(float dire)//Lados
{
auxiliarHorizontal = dire;
anim.SetFloat("direction",auxiliarHorizontal);
}
}
Script de Atacar
- Código:
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using UnityEngine.EventSystems;
public class MovimentoAttack : MonoBehaviour{
//Açoes para atacar
public bool Atacando;
public GameObject CollideAttack;
public float AttackTime = 0.8f;
public float AttackCounter;
//Animator
private Animator anim;
void Start(){
anim = GetComponent<Animator>();
CollideAttack.gameObject.SetActive(false);
}
void Update(){
if(Atacando == true){//Ataque
AttackCounter = AttackTime;
CollideAttack.gameObject.SetActive (true);
anim.SetBool("attack",true);
}else{
if(AttackCounter > 0){
AttackCounter -= Time.deltaTime;
CollideAttack.gameObject.SetActive (false);
}
Atacando = false;
anim.SetBool("attack",false);
AttackCounter = 0;
}
}
public void movimentoAttack(bool ATT)
{
Atacando = ATT;
}
}
Última edição por Callyde Jr em Sáb Set 09, 2017 1:02 pm, editado 1 vez(es)
Re: Buttoes UI? (funciona e param de funcionar?)
Possibilidades:
Seu botão funciona sim, porém sua animação de andar continua a ser executada, verifique se o "Has exit time" na animação andar está desmarcado.
Se o que quer é que o player ataque andando, utilize máscaras de bones em seu personagem, assim você irá conseguir mesclar as duas animações(Supondo que você esteja usando o Mechanim)
Seu botão funciona sim, porém sua animação de andar continua a ser executada, verifique se o "Has exit time" na animação andar está desmarcado.
Se o que quer é que o player ataque andando, utilize máscaras de bones em seu personagem, assim você irá conseguir mesclar as duas animações(Supondo que você esteja usando o Mechanim)
Fagner- Moderador
- PONTOS : 4443
REPUTAÇÃO : 667
Áreas de atuação : Modelagem 3D, Programação.
Respeito as regras :
Re: Buttoes UI? (funciona e param de funcionar?)
Dá uma revisada na Lógica da tua UPdate() principalmente na parte do }else if{ estou saindo agora, mas na volta vejo isso com mais tempo, se alguém já não resolver primeiro.Fagner escreveu:Possibilidades:
Seu botão funciona sim, porém sua animação de andar continua a ser executada, verifique se o "Has exit time" na animação andar está desmarcado.
Se o que quer é que o player ataque andando, utilize máscaras de bones em seu personagem, assim você irá conseguir mesclar as duas animações(Supondo que você esteja usando o Mechanim)
Fagner- Moderador
- PONTOS : 4443
REPUTAÇÃO : 667
Áreas de atuação : Modelagem 3D, Programação.
Respeito as regras :
Re: Buttoes UI? (funciona e param de funcionar?)
A update que estou falando é do Script de ataqueFagner escreveu:Dá uma revisada na Lógica da tua UPdate() principalmente na parte do }else if{ estou saindo agora, mas na volta vejo isso com mais tempo, se alguém já não resolver primeiro.Fagner escreveu:Possibilidades:
Seu botão funciona sim, porém sua animação de andar continua a ser executada, verifique se o "Has exit time" na animação andar está desmarcado.
Se o que quer é que o player ataque andando, utilize máscaras de bones em seu personagem, assim você irá conseguir mesclar as duas animações(Supondo que você esteja usando o Mechanim)
Fagner- Moderador
- PONTOS : 4443
REPUTAÇÃO : 667
Áreas de atuação : Modelagem 3D, Programação.
Respeito as regras :
Re: Buttoes UI? (funciona e param de funcionar?)
Ele funciona mais quando eu ando com o personagem ele nao atacar mais coloque assim
- Código:
void Update(){
if(Atacando == true){//Ataque
AttackCounter = AttackTime;
CollideAttack.gameObject.SetActive (true);
anim.SetBool("attack",true);
}else{
Atacando = false;
AttackCounter -= Time.deltaTime;
CollideAttack.gameObject.SetActive (false);
anim.SetBool("attack",false);
AttackCounter = 0;
}
}
Re: Buttoes UI? (funciona e param de funcionar?)
Cheguei agora, vou dar uma revisada no código. Mais tarde dou um retornoCallyde Jr escreveu:Ele funciona mais quando eu ando com o personagem ele nao atacar mais coloque assim
- Código:
void Update(){
if(Atacando == true){//Ataque
AttackCounter = AttackTime;
CollideAttack.gameObject.SetActive (true);
anim.SetBool("attack",true);
}else{
Atacando = false;
AttackCounter -= Time.deltaTime;
CollideAttack.gameObject.SetActive (false);
anim.SetBool("attack",false);
AttackCounter = 0;
}
}
Fagner- Moderador
- PONTOS : 4443
REPUTAÇÃO : 667
Áreas de atuação : Modelagem 3D, Programação.
Respeito as regras :
Re: Buttoes UI? (funciona e param de funcionar?)
No meu script MovimentoBotao quando vou pra frente ele anda e para traz ele anda um pouco e trava fca deslizando?
os paramentos no Animator para andar eu usae Float
Atacar e Pular usei Bool.
os paramentos no Animator para andar eu usae Float
Atacar e Pular usei Bool.
Re: Buttoes UI? (funciona e param de funcionar?)
Callyde Jr escreveu:No meu script MovimentoBotao quando vou pra frente ele anda e para traz ele anda um pouco e trava fca deslizando?
os paramentos no Animator para andar eu usae Float
Atacar e Pular usei Bool.
Talvez esse link te ajude a melhorar o movimento:
<a href="https://www.youtube.com/watch?v=8q_YTR-nYI8" target="_blank"><button>Clique aqui</button></a>
Re: Buttoes UI? (funciona e param de funcionar?)
Arrumei aqui amigos esta funcionando depois posto como fiz quando chegar em casa
Re: Buttoes UI? (funciona e param de funcionar?)
Eu refiz o script todo esta funcionando mais talvez da para ajusta-lo mais quem tive alguma ideia ?
o script e esse
o script e esse
- Código:
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using UnityEngine.EventSystems;
using UnityEngine.SceneManagement;
[RequireComponent(typeof(Rigidbody))]
[RequireComponent(typeof(CapsuleCollider))]
public class MovimentoBotao : MonoBehaviour{
//Auxiliar para movimento
private float auxiliarVertical;
private float auxiliarHorizontal;
//Velocidade input
public float velocidade;
//Animator
private Animator anim;
//Rigidbody
private Rigidbody corpoRigido;
//Status de morte
public static bool Dead = false;
//Comando para atacar
public bool Atacando = false;
public GameObject CollideAttack;
public GameObject TriggerPes;
//Para o pulo
public float gravidade = 0.9f;
private bool pulando = false;
public float alturadoSalto = 20;
//
public Vector3 direcaoDoPulo = new Vector3(0,1,0);
public float distanciaDoChao = 1, forcaDoPulo = 2, tempoPorPulo = 1;
void Start(){
anim = GetComponent<Animator>();
CollideAttack.gameObject.SetActive(false);
TriggerPes.gameObject.SetActive(false);
corpoRigido = GetComponent<Rigidbody> ();
velocidade = 2;
}
void Update(){
if(Input.GetButton("Jump")&& pulando == false){
pulaBuneco();
}
if(Atacando == true){//Ataque
CollideAttack.gameObject.SetActive (true);
anim.SetBool("attack",true);
}
if(Input.GetButton("Attaking"))
{
AttackAlgo();
}
}
public void Morreu(){
Dead = true;
velocidade = 0;
anim.SetBool("dead",true);
Invoke("ReloadScene", 3f);
}
void ReloadScene()
{
anim.SetBool("dead",false);
Dead = false;
velocidade = 2;
SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
}
void FixedUpdate (){
if(Dead == false){
if(auxiliarVertical != 0){
transform.Translate(0,0,velocidade*Time.deltaTime*auxiliarVertical);
}
if(auxiliarHorizontal != 0){
transform.Rotate(0,velocidade*Time.deltaTime*auxiliarHorizontal*50,0);
}
}
}
public void movimentoVertical(float velo)// Andando
{
if(Dead == false){//Se estiver vivo
anim.SetBool("walk",true);
auxiliarVertical = velo;
}
if(velo == 0){
anim.SetBool("walk",false);
}
}
public void movimentoHorizontal(float dire)//Lados
{
if(Dead == false){//Se estiver vivo
anim.SetBool("walk",true);
auxiliarHorizontal = dire;
}
if(dire == 0){
anim.SetBool("walk",false);
}
}
public void AttackAlgo()
{
if(Atacando == false){//Ataque
StartCoroutine(atacaRotine());
}
}
IEnumerator atacaRotine()
{
Atacando = true;
CollideAttack.gameObject.SetActive (true);
anim.SetBool("attack",true);
yield return new WaitForSeconds (2);
Atacando = false;
CollideAttack.gameObject.SetActive (false);
anim.SetBool("attack",false);
}
public void pulaBuneco()//Para pular
{
if(pulando == false){
pulando = true;
corpoRigido.AddForce (direcaoDoPulo * forcaDoPulo, ForceMode.Impulse);
TriggerPes.gameObject.SetActive(false);
pulando = false;
TriggerPes.gameObject.SetActive(false);
}
}
}
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos