Correção de Erro de Movimentação e Pulo por Botão UI
2 participantes
Página 1 de 1
Correção de Erro de Movimentação e Pulo por Botão UI
Preciso de ajuda, pois não estou conseguindo vincular os botões de UI com o prefab que é instanciado na tela, e não consigo implementar a parte do pulo no código, tentei usar o mesmo sistema, que na direção esquerda ou direita, mas apresenta erro no Vector2. Não sei exatamente oq ocorre, mas fico no aguardo, e já agradeço de ante-mão.
- Código:
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using UnityEngine.UI;
public class MovimentBot : MonoBehaviour
{
public float velocity;
private bool right;
private bool left;
private bool jump;
private Animator botController;
private SpriteRenderer bot;
// Metodo chamado no inicio do script;
private void Start()
{
bot = GetComponent<SpriteRenderer>();
botController = GetComponent<Animator>();
}
// Metodo chamado a cada frame do script;
private void Update()
{
if (right || left)
{
botController.SetTrigger("EmMovimento");
}
else if(jump)
{
botController.SetTrigger("NoAr");
}
else
{
botController.SetTrigger("Parado");
}
if (right)
{
bot.flipX = false;
transform.Translate(Vector2.right * velocity * Time.deltaTime);
left = false;
jump = false;
Debug.Log("Direita");
}
if (left)
{
bot.flipX = true;
transform.Translate(Vector2.left * velocity * Time.deltaTime);
right = false;
jump = false;
Debug.Log("Esquerda");
}
if (jump)
{
bot.flipY = true;
transform.Translate(Vector2.jump * velocity * Time.deltaTime);
right = false;
left = false;
Debug.Log("No Ar");
}
}
public void MovimentRight (bool active)
{
right = active;
}
public void MovimentLeft (bool active)
{
left = active;
}
public void MovimentUp (bool active)
{
jump = active;
}
735T3R- Iniciante
- PONTOS : 3128
REPUTAÇÃO : 0
Idade : 26
Áreas de atuação : Produção de Jogos Indie
Re: Correção de Erro de Movimentação e Pulo por Botão UI
Então eu uso um código para pulo na UI... vou ta deixando o script espero que ajude, eu uso ele em meu projeto.
lembrado que seu player tem que ter Rigidbody.
lembrado que seu player tem que ter Rigidbody.
- Código:
using UnityEngine;
public class (NOME DO SEU SCRIPT) : MonoBehaviour
{
public float força;
public float distanciaDoRaio;
public Rigidbody player_R;
private bool clickButton, chãoIsTrue;
void FixedUpdate()
{
RaycastHit raio;
if (Physics.Raycast(transform.position, -transform.up, out raio, distanciaDoRaio))
{
if (raio.collider)
{
chãoIsTrue = true;
}
}
else
{
chãoIsTrue = false;
}
if (chãoIsTrue)
{
if (clickButton == true)
{
player_R.AddForce(Vector3.up * força * Time.deltaTime);
clickButton = false;
}
}
else
{
clickButton = false;
}
}
public void (NOME DO SEU BOTÃO)(bool cliquei)
{
clickButton = true;
}
}
jackamir15- Iniciante
- PONTOS : 1731
REPUTAÇÃO : 2
Idade : 25
Respeito as regras :
Re: Correção de Erro de Movimentação e Pulo por Botão UI
- Código:
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using UnityEngine.UI;
public class BotMovimento : MonoBehaviour
{
public float velocity;
private bool right;
private bool left;
private bool jump;
private Animator botController;
private SpriteRenderer bot;
// Metodo chamado no inicio do script;
private void Start()
{
bot = GetComponent<SpriteRenderer>();
botController = GetComponent<Animator>();
}
// Metodo chamado a cada frame do script;
private void Update()
{
if (right || left)
{
botController.SetTrigger("EmMovimento");
}
else if(jump)
{
botController.SetTrigger("NoAr");
}
else
{
botController.SetTrigger("Parado");
}
if (right)
{
bot.flipX = false;
transform.Translate(Vector2.right * velocity * Time.deltaTime);
left = false;
jump = false;
Debug.Log("Direita");
}
if (left)
{
bot.flipX = true;
transform.Translate(Vector2.left * velocity * Time.deltaTime);
right = false;
jump = false;
Debug.Log("Esquerda");
}
if (jump)
{
bot.flipY = true;
transform.Translate(0f, velocity, 0f);
right = false;
left = false;
Debug.Log("No Ar");
}
}
public void MovimentRight (bool active)
{
right = active;
}
public void MovimentLeft (bool active)
{
left = active;
}
public void MovimentUp (bool active)
{
jump = active;
}
}
Então pelo oq eu percebi o botão UI chama a função de movimento e pulo, porem não associa ou não executa no personagem.
735T3R- Iniciante
- PONTOS : 3128
REPUTAÇÃO : 0
Idade : 26
Áreas de atuação : Produção de Jogos Indie
Tópicos semelhantes
» Erro no Script de pulo dublo
» Sistema de Pulo está dando erro.
» script 2D double jump erro no 2 pulo que não pla ou pula alto demais
» Erro Movimentação RPG
» Erro na movimentação
» Sistema de Pulo está dando erro.
» script 2D double jump erro no 2 pulo que não pla ou pula alto demais
» Erro Movimentação RPG
» Erro na movimentação
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos