Hola a todos
tengo una duda sobre una script de movimiento en c#
me gustaría saber cómo hago para que al presionar la tecla (w) y la tecla (q) Aumentar la velocidad en el eje z algo asi como sprintar
Ya tengo algo avanzado para hacer mover el personaje pero no puedo con lo dicho arriba. Agradecería mucho su ayuda
Aquí está mi script en c#
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class controlador : MonoBehaviour {
public int m_velocidadw;
public int m_velocidads;
public int m_velocidada;
public int m_velocidadd;
void Start () {
}
void Update () {
if (Input.GetKey (KeyCode.W))
transform.Translate (, , Time.deltaTime*m_velocidadw);
if (Input.GetKey (KeyCode.S))
transform.Translate (, , -Time.deltaTime*m_velocidads);
if (Input.GetKey (KeyCode.D))
transform.Translate (Time.deltaTime*m_velocidadd, , );
if (Input.GetKey (KeyCode.A))
transform.Translate (-Time.deltaTime*m_velocidada, ,);
}
}
cómo hago para que al presionar la tecla (w) y la tecla (q) Aumentar la velocidad en el eje z
[/quote]
Te lo estas contestando vos mismo, usas un AND en el if:
if (Input.GetKey (KeyCode.W) && Input.GetKey (KeyCode.Q))
transform.Translate (0, 0, Time.deltaTime*m_velocidadw * 2);
Aunque algo mas prolijo seria:
if (Input.GetKey (KeyCode.W)){
float velocidad = m_velocidadw;
if(Input.GetKey (KeyCode.Q))
velocidad *= 2;
transform.Translate (0, 0, Time.deltaTime * velocidad);
} else if(Input.GetKey (KeyCode.S)){
}
if(A){
}else if(D){
}
//Te recomiendo poner siempre el W y S (A y D) de tal forma que los dos no se puedan dar, si se da uno el otro no
// Evitas mas condiciones
Saludos