Movimento com Botões Unity 3D
3 participantes
Página 1 de 1
Movimento com Botões Unity 3D
Olá, estou iniciando no unity e estou começando a aprender agora, criei um jogo para android mas o movimento do personagem só funciona com as teclas W A S D ou as setas do computador, gostaria de saber como ao apertar um botão, o jogador vire a direita ou a esquerda.
KauanGP- Iniciante
- PONTOS : 1804
REPUTAÇÃO : 1
Respeito as regras :
Re: Movimento com Botões Unity 3D
Bom, é só você criar uns botões na ui, e substituir os input por metodos assim:
Depois, vá em on click em inspector e arraste o objeto que está com o script, depois é só selecionar o metodo "Direita()" ainda no on click, faça isso para cada botão.
- Código:
public void Frente()
{
transform.Translate(Vector3.forward * velocidade );
}public void Direita()
{
transform.Translate(Vector3.right * velocidade );
// ou
transform.Rotate(0, 5, 0);
}
Depois, vá em on click em inspector e arraste o objeto que está com o script, depois é só selecionar o metodo "Direita()" ainda no on click, faça isso para cada botão.
Re: Movimento com Botões Unity 3D
KurotamaXIII escreveu:Bom, é só você criar uns botões na ui, e substituir os input por metodos assim:
- Código:
public void Frente()
{
transform.Translate(Vector3.forward * velocidade );
}public void Direita()
{
transform.Translate(Vector3.right * velocidade );
// ou
transform.Rotate(0, 5, 0);
}
Depois, vá em on click em inspector e arraste o objeto que está com o script, depois é só selecionar o metodo "Direita()" ainda no on click, faça isso para cada botão.
KauanGP- Iniciante
- PONTOS : 1804
REPUTAÇÃO : 1
Respeito as regras :
Re: Movimento com Botões Unity 3D
Olá e como faz pra movimentar a camera?KurotamaXIII escreveu:KurotamaXIII escreveu:Bom, é só você criar uns botões na ui, e substituir os input por metodos assim:
- Código:
public void Frente()
{
transform.Translate(Vector3.forward * velocidade );
}public void Direita()
{
transform.Translate(Vector3.right * velocidade );
// ou
transform.Rotate(0, 5, 0);
}
Depois, vá em on click em inspector e arraste o objeto que está com o script, depois é só selecionar o metodo "Direita()" ainda no on click, faça isso para cada botão.
rauljeremias- Iniciante
- PONTOS : 1619
REPUTAÇÃO : 0
Respeito as regras :
Re: Movimento com Botões Unity 3D
rauljeremias escreveu:Olá e como faz pra movimentar a camera?KurotamaXIII escreveu:KurotamaXIII escreveu:Bom, é só você criar uns botões na ui, e substituir os input por metodos assim:
- Código:
public void Frente()
{
transform.Translate(Vector3.forward * velocidade );
}public void Direita()
{
transform.Translate(Vector3.right * velocidade );
// ou
transform.Rotate(0, 5, 0);
}
Depois, vá em on click em inspector e arraste o objeto que está com o script, depois é só selecionar o metodo "Direita()" ainda no on click, faça isso para cada botão.
Nesse cod to ususando um joystick, mas você pode adaptar para botões na tela(Você pode fazer o seguinte, criar metodos, que nem você fez para movimento, e colocar dentro do metodo por explo h2++, para realizar o movimento, você pode colocar um if para limitar tb o tanto que ele pode se movimentar, ah, não esqueça de apagar o "h2 = joystick2.Horizontal;
v2 = joystick2.Vertical").
- Código:
void Update()
{
Movimenta();
}
void Movimenta() {
h2 = joystick2.Horizontal;
v2 = joystick2.Vertical;
transform.RotateAround(alvo.position, transform.up, h2 * veloM);
http://transform.RotateAround(alvo.position, transform.right, v2 * veloM);
transform.position = alvo.position - transform.forward * disCam;
}
Se você quiser fazer com joystick tem no assetstore varios modelos free, é so você arrastar o joystick para dentro do canvas, e indicar no script.(Vou deixar o script inteiro caso você queria)
- Código:
public Transform alvo;
RaycastHit hit = new RaycastHit();
public float disCam;
public Joystick joystick2; // você vai arrastar o joystick que ta no canvas aqui
private float h2;
private float v2;
public float veloM=0f;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
Movimenta();
}
void Movimenta() {
h2 = joystick2.Horizontal;
v2 = joystick2.Vertical;
transform.RotateAround(alvo.position, transform.up, h2 * veloM);
http://transform.RotateAround(alvo.position, transform.right, v2 * veloM);
Vector3 rotacao = transform.eulerAngles;
rotacao.z = 0;
transform.eulerAngles = rotacao;
transform.position = alvo.position - transform.forward * disCam;
if (Physics.Linecast(alvo.position, transform.position, out hit))// to usando isso para evitar que a camera atravesse a parede,
{// ele vai ver se tem um parede e se tiver vai posicionara camera para frente
transform.position = hit.point + transform.forward * 0.2f;
}
}
}
Re: Movimento com Botões Unity 3D
O site colocou um http: na frente de transform, o que ta comentado, ele não existe nãoKurotamaXIII escreveu:rauljeremias escreveu:Olá e como faz pra movimentar a camera?KurotamaXIII escreveu:KurotamaXIII escreveu:Bom, é só você criar uns botões na ui, e substituir os input por metodos assim:
- Código:
public void Frente()
{
transform.Translate(Vector3.forward * velocidade );
}public void Direita()
{
transform.Translate(Vector3.right * velocidade );
// ou
transform.Rotate(0, 5, 0);
}
Depois, vá em on click em inspector e arraste o objeto que está com o script, depois é só selecionar o metodo "Direita()" ainda no on click, faça isso para cada botão.
Nesse cod to ususando um joystick, mas você pode adaptar para botões na tela(Você pode fazer o seguinte, criar metodos, que nem você fez para movimento, e colocar dentro do metodo por explo h2++, para realizar o movimento, você pode colocar um if para limitar tb o tanto que ele pode se movimentar, ah, não esqueça de apagar o "h2 = joystick2.Horizontal;
v2 = joystick2.Vertical").
- Código:
void Update()
{
Movimenta();
}
void Movimenta() {
h2 = joystick2.Horizontal;
v2 = joystick2.Vertical;
transform.RotateAround(alvo.position, transform.up, h2 * veloM);
//transform.RotateAround(alvo.position, transform.right, v2 * veloM);
transform.position = alvo.position - transform.forward * disCam;
}
Se você quiser fazer com joystick tem no assetstore varios modelos free, é so você arrastar o joystick para dentro do canvas, e indicar no script.(Vou deixar o script inteiro caso você queria)
- Código:
public Transform alvo;
RaycastHit hit = new RaycastHit();
public float disCam;
public Joystick joystick2; // você vai arrastar o joystick que ta no canvas aqui
private float h2;
private float v2;
public float veloM=0f;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
Movimenta();
}
void Movimenta() {
h2 = joystick2.Horizontal;
v2 = joystick2.Vertical;
transform.RotateAround(alvo.position, transform.up, h2 * veloM);
//transform.RotateAround(alvo.position, transform.right, v2 * veloM);
Vector3 rotacao = transform.eulerAngles;
rotacao.z = 0;
transform.eulerAngles = rotacao;
transform.position = alvo.position - transform.forward * disCam;
if (Physics.Linecast(alvo.position, transform.position, out hit))// to usando isso para evitar que a camera atravesse a parede,
{// ele vai ver se tem um parede e se tiver vai posicionara camera para frente
transform.position = hit.point + transform.forward * 0.2f;
}
}
}
Re: Movimento com Botões Unity 3D
Vou tentar aqui obgKurotamaXIII escreveu:O site colocou um http: na frente de transform, o que ta comentado, ele não existe nãoKurotamaXIII escreveu:rauljeremias escreveu:Olá e como faz pra movimentar a camera?KurotamaXIII escreveu:KurotamaXIII escreveu:Bom, é só você criar uns botões na ui, e substituir os input por metodos assim:
- Código:
public void Frente()
{
transform.Translate(Vector3.forward * velocidade );
}public void Direita()
{
transform.Translate(Vector3.right * velocidade );
// ou
transform.Rotate(0, 5, 0);
}
Depois, vá em on click em inspector e arraste o objeto que está com o script, depois é só selecionar o metodo "Direita()" ainda no on click, faça isso para cada botão.
Nesse cod to ususando um joystick, mas você pode adaptar para botões na tela(Você pode fazer o seguinte, criar metodos, que nem você fez para movimento, e colocar dentro do metodo por explo h2++, para realizar o movimento, você pode colocar um if para limitar tb o tanto que ele pode se movimentar, ah, não esqueça de apagar o "h2 = joystick2.Horizontal;
v2 = joystick2.Vertical").
- Código:
void Update()
{
Movimenta();
}
void Movimenta() {
h2 = joystick2.Horizontal;
v2 = joystick2.Vertical;
transform.RotateAround(alvo.position, transform.up, h2 * veloM);
//transform.RotateAround(alvo.position, transform.right, v2 * veloM);
transform.position = alvo.position - transform.forward * disCam;
}
Se você quiser fazer com joystick tem no assetstore varios modelos free, é so você arrastar o joystick para dentro do canvas, e indicar no script.(Vou deixar o script inteiro caso você queria)
- Código:
public Transform alvo;
RaycastHit hit = new RaycastHit();
public float disCam;
public Joystick joystick2; // você vai arrastar o joystick que ta no canvas aqui
private float h2;
private float v2;
public float veloM=0f;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
Movimenta();
}
void Movimenta() {
h2 = joystick2.Horizontal;
v2 = joystick2.Vertical;
transform.RotateAround(alvo.position, transform.up, h2 * veloM);
//transform.RotateAround(alvo.position, transform.right, v2 * veloM);
Vector3 rotacao = transform.eulerAngles;
rotacao.z = 0;
transform.eulerAngles = rotacao;
transform.position = alvo.position - transform.forward * disCam;
if (Physics.Linecast(alvo.position, transform.position, out hit))// to usando isso para evitar que a camera atravesse a parede,
{// ele vai ver se tem um parede e se tiver vai posicionara camera para frente
transform.position = hit.point + transform.forward * 0.2f;
}
}
}
rauljeremias- Iniciante
- PONTOS : 1619
REPUTAÇÃO : 0
Respeito as regras :
Re: Movimento com Botões Unity 3D
Mas esse código é pra colocar no personagem ou na câmera?KurotamaXIII escreveu:O site colocou um http: na frente de transform, o que ta comentado, ele não existe nãoKurotamaXIII escreveu:rauljeremias escreveu:Olá e como faz pra movimentar a camera?KurotamaXIII escreveu:KurotamaXIII escreveu:Bom, é só você criar uns botões na ui, e substituir os input por metodos assim:
- Código:
public void Frente()
{
transform.Translate(Vector3.forward * velocidade );
}public void Direita()
{
transform.Translate(Vector3.right * velocidade );
// ou
transform.Rotate(0, 5, 0);
}
Depois, vá em on click em inspector e arraste o objeto que está com o script, depois é só selecionar o metodo "Direita()" ainda no on click, faça isso para cada botão.
Nesse cod to ususando um joystick, mas você pode adaptar para botões na tela(Você pode fazer o seguinte, criar metodos, que nem você fez para movimento, e colocar dentro do metodo por explo h2++, para realizar o movimento, você pode colocar um if para limitar tb o tanto que ele pode se movimentar, ah, não esqueça de apagar o "h2 = joystick2.Horizontal;
v2 = joystick2.Vertical").
- Código:
void Update()
{
Movimenta();
}
void Movimenta() {
h2 = joystick2.Horizontal;
v2 = joystick2.Vertical;
transform.RotateAround(alvo.position, transform.up, h2 * veloM);
//transform.RotateAround(alvo.position, transform.right, v2 * veloM);
transform.position = alvo.position - transform.forward * disCam;
}
Se você quiser fazer com joystick tem no assetstore varios modelos free, é so você arrastar o joystick para dentro do canvas, e indicar no script.(Vou deixar o script inteiro caso você queria)
- Código:
public Transform alvo;
RaycastHit hit = new RaycastHit();
public float disCam;
public Joystick joystick2; // você vai arrastar o joystick que ta no canvas aqui
private float h2;
private float v2;
public float veloM=0f;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
Movimenta();
}
void Movimenta() {
h2 = joystick2.Horizontal;
v2 = joystick2.Vertical;
transform.RotateAround(alvo.position, transform.up, h2 * veloM);
//transform.RotateAround(alvo.position, transform.right, v2 * veloM);
Vector3 rotacao = transform.eulerAngles;
rotacao.z = 0;
transform.eulerAngles = rotacao;
transform.position = alvo.position - transform.forward * disCam;
if (Physics.Linecast(alvo.position, transform.position, out hit))// to usando isso para evitar que a camera atravesse a parede,
{// ele vai ver se tem um parede e se tiver vai posicionara camera para frente
transform.position = hit.point + transform.forward * 0.2f;
}
}
}
rauljeremias- Iniciante
- PONTOS : 1619
REPUTAÇÃO : 0
Respeito as regras :
Tópicos semelhantes
» [TUTORIAL] Movimento 2D e 3D no Unity (sem rigidbody)
» Conversor de movimento do Unity para o MMD [Ajuda]
» movimento 2d
» Unity 2d - AJUDA PERSONAGEM N FICA NA PLATAFORMA EM MOVIMENTO
» Tutorial Como Fazer Uma Chama de Vela Com Movimento Natural Unity
» Conversor de movimento do Unity para o MMD [Ajuda]
» movimento 2d
» Unity 2d - AJUDA PERSONAGEM N FICA NA PLATAFORMA EM MOVIMENTO
» Tutorial Como Fazer Uma Chama de Vela Com Movimento Natural Unity
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos