[RESOLVIDO] Como mover personagem em y pelo Rigidbody
4 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
[RESOLVIDO] Como mover personagem em y pelo Rigidbody
Boa tarde!
tenho esse script aqui que faz a movimentação horizontalmente, no eixo x:
tentei trocar o x por y mas o player fica movendo na diagonal.
o que posso mudar no script para passar a mover também no eixo y caso eu aperte para cima e baixo, além de continuar movendo p frente e trás?
é para um jogo shooter de nave.
obrigado!
tenho esse script aqui que faz a movimentação horizontalmente, no eixo x:
- Código:
using UnityEngine;
using System.Collections;
public class playerController : MonoBehaviour {
public float maxSpeed;
private Rigidbody2D myRigidbody;
private Animator animator;
private bool paraDireita;
void Start () {
myRigidbody = GetComponent<Rigidbody2D>();
animator = GetComponent<Animator>();
}
void FixedUpdate () {
float mover = Input.GetAxis("Horizontal");
myRigidbody.velocity = new Vector2(mover * maxSpeed, myRigidbody.velocity.y);
if (mover > 0 && !paraDireita) {
Virar();
}
else if (mover < 0 && paraDireita) {
Virar();
}
}
void Virar() {
paraDireita = !paraDireita;
Vector3 _scale = transform.localScale;
_scale.x *= -1;
transform.localScale = _scale;
}
}
tentei trocar o x por y mas o player fica movendo na diagonal.
o que posso mudar no script para passar a mover também no eixo y caso eu aperte para cima e baixo, além de continuar movendo p frente e trás?
é para um jogo shooter de nave.
obrigado!
Marc7- Mestre
- PONTOS : 3443
REPUTAÇÃO : 28
Respeito as regras :
Re: [RESOLVIDO] Como mover personagem em y pelo Rigidbody
tenta esse aqui champs
- Código:
using UnityEngine;
using System.Collections;
public class playerController : MonoBehaviour
{
public float maxSpeed;
private Rigidbody2D myRigidbody;
private Animator animator;
private bool paraDireita;
void Start()
{
myRigidbody = GetComponent<Rigidbody2D>();
animator = GetComponent<Animator>();
}
void FixedUpdate()
{
float moverCima = Input.GetAxis("Vertical");
myRigidbody.velocity = new Vector2(moverCima * maxSpeed, myRigidbody.velocity.y);
if (moverCima > 0 && !paraDireita)
{
Virar();
}
else if (moverCima < 0 && paraDireita)
{
Virar();
}
float mover = Input.GetAxis("Horizontal");
myRigidbody.velocity = new Vector2(mover * maxSpeed, myRigidbody.velocity.x);
}
void Virar()
{
paraDireita = !paraDireita;
Vector3 _scale = transform.localScale;
_scale.x *= -1;
transform.localScale = _scale;
}
}
kalel013- Avançado
- PONTOS : 3143
REPUTAÇÃO : 30
Idade : 24
Áreas de atuação : Artista 3d (blender), iniciante em programação (python e PHP), iniciante em arte 2d (InkScape)
Respeito as regras :
Re: [RESOLVIDO] Como mover personagem em y pelo Rigidbody
ok kalel funcionou blz aqui, valeu mesmo!
engraçado que antes era Input horizontal com velocidade y, agora inverteu para valocidade x e Input Vertical com velocidade y, queria entender melhor isso com o rigidbody.
engraçado que antes era Input horizontal com velocidade y, agora inverteu para valocidade x e Input Vertical com velocidade y, queria entender melhor isso com o rigidbody.
Marc7- Mestre
- PONTOS : 3443
REPUTAÇÃO : 28
Respeito as regras :
Re: [RESOLVIDO] Como mover personagem em y pelo Rigidbody
É basicamente um plano cartesiano, onde X seria pros lados(Horizontal), e Y pra cima e pra baixo(Vertical).
Então se voce esta apertando A ou seta esquerda isso seria interpretado como -1 na Horizontal o que seria mover pra esquerda, Ja se voce apertar D ou seta direita o valor seria +1 na Horizontal o que seria mover pra direita.
Ja se voce apertar W ou pra cima seria +1 vertical, ou seja subir, caso voce apertar S ou pra baixo seria -1 Vertical ou seja descer...
Então se voce esta apertando A ou seta esquerda isso seria interpretado como -1 na Horizontal o que seria mover pra esquerda, Ja se voce apertar D ou seta direita o valor seria +1 na Horizontal o que seria mover pra direita.
Ja se voce apertar W ou pra cima seria +1 vertical, ou seja subir, caso voce apertar S ou pra baixo seria -1 Vertical ou seja descer...
Re: [RESOLVIDO] Como mover personagem em y pelo Rigidbody
Entendi Manawydan, mas o que me confundiu foi no codigo que eu postei lá em cima onde o Input.GetAxis("Horizontal") está para myRigidbody.velocity.y
como é na horizontal, não deveria ser em x?
já no codigo do kalel é o Input.GetAxis("Vertical") que está para myRigidbody.velocity.y
e o Horizontal para o velocity.x
porque que no meu codigo o y está na Horizontal e funciona?
como é na horizontal, não deveria ser em x?
já no codigo do kalel é o Input.GetAxis("Vertical") que está para myRigidbody.velocity.y
e o Horizontal para o velocity.x
porque que no meu codigo o y está na Horizontal e funciona?
Marc7- Mestre
- PONTOS : 3443
REPUTAÇÃO : 28
Respeito as regras :
Re: [RESOLVIDO] Como mover personagem em y pelo Rigidbody
- Código:
using UnityEngine;
using System.Collections;
public class playerController : MonoBehaviour {
public float maxSpeed;
private Rigidbody2D myRigidbody;
private Animator animator;
private bool paraDireita;
void Start () {
myRigidbody = GetComponent<Rigidbody2D>();
animator = GetComponent<Animator>();
}
void FixedUpdate () {
myRigidbody.velocity = new Vector2(Input.GetAxis("Horizontal"), Input.GetAxis("Vertical"));
if (Input.GetAxis("Horizontal") > 0 && !paraDireita) {
Virar();
}
else if (Input.GetAxis("Horizontal") < 0 && paraDireita) {
Virar();
}
}
void Virar() {
paraDireita = !paraDireita;
Vector3 _scale = transform.localScale;
_scale.x *= -1;
transform.localScale = _scale;
}
}
Re: [RESOLVIDO] Como mover personagem em y pelo Rigidbody
obrigado Marcos pela alternativa!
Marc7- Mestre
- PONTOS : 3443
REPUTAÇÃO : 28
Respeito as regras :
Tópicos semelhantes
» Como mover personagem com rigidbody sem aumentar a velocidade
» Como mover um objeto sem usar collider ou rigidbody?
» [RESOLVIDO]Personagem com Rigidbody travando na parede ao movimentar
» COMO MOVER UM OBJETO OU PERSONAGEM
» [RESOLVIDO] Clicar em um botão e o personagem se mover por uma distância.
» Como mover um objeto sem usar collider ou rigidbody?
» [RESOLVIDO]Personagem com Rigidbody travando na parede ao movimentar
» COMO MOVER UM OBJETO OU PERSONAGEM
» [RESOLVIDO] Clicar em um botão e o personagem se mover por uma distância.
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos