[RESOLVIDO] BONECO NÃO PULA NA DIAGONAL ESQUERDA E FRENTE
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
[RESOLVIDO] BONECO NÃO PULA NA DIAGONAL ESQUERDA E FRENTE
Olá, estou com uma grande dúvida:
O meu objeto tem um rigidibody e é anexado a esse script abaixo se move pelas teclas a,s,w,d e pula pela tecla space
porém se move e pula em todas as direções, menos em (a+w) e space (não pula depois de eu mover na diagonal frente e esquerda!!)
Alguém pode me auxiliar? estou achando que é bug do Unity!!!! Grato a todos!!!
O meu objeto tem um rigidibody e é anexado a esse script abaixo se move pelas teclas a,s,w,d e pula pela tecla space
porém se move e pula em todas as direções, menos em (a+w) e space (não pula depois de eu mover na diagonal frente e esquerda!!)
Alguém pode me auxiliar? estou achando que é bug do Unity!!!! Grato a todos!!!
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MovimentoPlayer : MonoBehaviour {
public Vector3 dirPulo = new Vector3(0, 1, 0);
[SerializeField]
private bool estaNoChao;
private Rigidbody rb;
void Start()
{
rb = GetComponent<Rigidbody>();
}
public void Pular()
{
estaNoChao = Physics.Linecast(transform.position, transform.position - Vector3.up * 0.7f);
if (estaNoChao && Input.GetKeyDown(KeyCode.Space))
{
rb.AddForce(dirPulo * 20.0f, ForceMode.Impulse);
estaNoChao = false;
}
}
public void Mover()
{
Vector3 moveDir = new Vector3();
moveDir.x = Input.GetAxis("Horizontal");
moveDir.z = Input.GetAxis("Vertical");
moveDir = transform.TransformDirection(moveDir);
moveDir *= 5.0f;
moveDir.y = rb.velocity.y;
rb.velocity = moveDir;
}
void Update()
{
Mover();
Pular();
}
}
osiasbezerra- Avançado
- PONTOS : 3597
REPUTAÇÃO : 8
Respeito as regras :
Re: [RESOLVIDO] BONECO NÃO PULA NA DIAGONAL ESQUERDA E FRENTE
Lembrando que deve-se marcar o Freeze Rotation em x e z no rigidibody. Alguém sabe o problema?
osiasbezerra- Avançado
- PONTOS : 3597
REPUTAÇÃO : 8
Respeito as regras :
Re: [RESOLVIDO] BONECO NÃO PULA NA DIAGONAL ESQUERDA E FRENTE
Eu fiz um script para testar o teclado, com isso fica dissociado o problema com o rigidibody. Criei 5 esferas (representando a,s,w,d e space) e anexei ao script:
Observei que o problema continuou, só que com a seta direita e cima pressionados o pulo também não aciona, vou testar o teclado do Windows (fora da Unity agora)
Observei que o problema continuou, só que com a seta direita e cima pressionados o pulo também não aciona, vou testar o teclado do Windows (fora da Unity agora)
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TesteTeclado : MonoBehaviour {
public GameObject[] go;
public bool isWhite = true;
void Start()
{
}
void Update()
{
if (Input.GetKey(KeyCode.A) || Input.GetKey(KeyCode.LeftArrow) )
{
go[0].GetComponent<MeshRenderer>().material.color = Color.red;
isWhite = false;
}
if (Input.GetKeyUp(KeyCode.A) || Input.GetKeyUp(KeyCode.LeftArrow) )
isWhite = true;
if (Input.GetKey(KeyCode.D) || Input.GetKey(KeyCode.RightArrow))
{
go[1].GetComponent<MeshRenderer>().material.color = Color.red;
isWhite = false;
}
if (Input.GetKeyUp(KeyCode.D) || Input.GetKeyUp(KeyCode.RightArrow))
isWhite = true;
if (Input.GetKey(KeyCode.S) || Input.GetKey(KeyCode.DownArrow))
{
go[2].GetComponent<MeshRenderer>().material.color = Color.red;
isWhite = false;
}
if (Input.GetKeyUp(KeyCode.S) || Input.GetKeyUp(KeyCode.DownArrow))
isWhite = true;
if (Input.GetKey(KeyCode.W) || Input.GetKey(KeyCode.UpArrow))
{
go[3].GetComponent<MeshRenderer>().material.color = Color.red;
isWhite = false;
}
if (Input.GetKeyUp(KeyCode.W) || Input.GetKeyUp(KeyCode.UpArrow))
isWhite = true;
if (Input.GetKeyDown(KeyCode.Space))
{
go[4].GetComponent<MeshRenderer>().material.color = Color.red;
isWhite = false;
}
if (Input.GetKeyUp(KeyCode.Space))
isWhite = true;
if (isWhite)
for (int i = 0; i < 5; i++)
{
go[i].GetComponent<MeshRenderer>().material.color = Color.white;
}
}
}
osiasbezerra- Avançado
- PONTOS : 3597
REPUTAÇÃO : 8
Respeito as regras :
Re: [RESOLVIDO] BONECO NÃO PULA NA DIAGONAL ESQUERDA E FRENTE
[RESOLVIDO] Instalei um programa e testei o teclado via windows e ele não comporta essas teclas apertadas ao mesmo tempo.
osiasbezerra- Avançado
- PONTOS : 3597
REPUTAÇÃO : 8
Respeito as regras :
Tópicos semelhantes
» [RESOLVIDO]Como criar um comando para deslisar o touch na horizontal(direita ou esquerda)?
» [RESOLVIDO]Ativar o Character controle faz o boneco ignorar gravidade
» [RESOLVIDO]Correr Somente para frente!
» [RESOLVIDO] como respawnar um objeto na minha frente?
» problema com script de pula pula
» [RESOLVIDO]Ativar o Character controle faz o boneco ignorar gravidade
» [RESOLVIDO]Correr Somente para frente!
» [RESOLVIDO] como respawnar um objeto na minha frente?
» problema com script de pula pula
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos