Presiona cualquier tecla para jugar
– UnityAssets3Free
bienvenido , por aqui juansito y esta vez os traigo
esta unity pregunta
Soy nuevo en Unitye. Estoy tratando de crear un menú para un juego, pero no puedo presionar una tecla para activar el botón.
public class MenuCamControl : MonoBehaviour
public Transform currentMount;
public float speed = 0.1f;
public float zoom = 0.1f;
void Update()
transform.position = Vector3.Lerp(transform.position, currentMount.position, speed);
transform.rotation = Quaternion.Slerp(transform.rotation, currentMount.rotation, speed);
public void SetMount(Transform newMonut)
currentMount = newMonut;
Editar: agregué el código que tengo ahora, que es una animación.
Edit2: Aquí es donde toma la animación. Imagen
1 respuesta 1
Usar Input.anyKey
y una bandera para determinar cuándo se pulsa la primera tecla para no pulsarla varias veces.
public class Example: MonoBehaviour
private bool keyPressed = false;
void Update()
if (Input.anyKey && !keyPressed)
keyPressed = true;
else
// put your camera move code here
Este método también toma cualquier entrada del mouse. Si realmente solo desea que continúe cualquier entrada de teclado y no cualquier entrada de mouse, puedo actualizar mi respuesta.
No necesita un botón de interfaz de usuario para esto. Solo una función para rastrear si se produce una entrada y otra para iniciar o cargar tu juego. Si desea que el juego comience cuando se hace clic en un botón, simplemente asigne el oyente onClick a una función en el código o en el inspector.
Si agrega el código que desea ejecutar o lo que desea hacer después del clic, puedo actualizar mi fragmento.
Para editar: Así es como combinaría mi fragmento y su código actual. También puedes usar un Coroutine
Pero no es necesario.
public class MenuCamControl : MonoBehaviour
public Transform currentMount;
public float speed = 0.1f;
public float zoom = 0.1f;
private bool keyPressed = false;
void Update()
if (Input.anyKey && !keyPressed)
keyPressed = true;
else
transform.position = Vector3.Lerp(transform.position, currentMount.position, speed);
transform.rotation = Quaternion.Slerp(transform.rotation, currentMount.rotation, speed);
// I am not sure what this does, it currently is not called?
public void SetMount(Transform newMonut)
currentMount = newMonut;
Común Coroutine
puede ser algo como
void Update()
if (Input.anyKey && !keyPressed)
keyPressed = true;
if(referenceToCoroutine == null)
referenceToCoroutine = StartCoroutine(DoCameraAnimation());
private IEnumerator DoCameraAnimation()
...
Tendría que cambiar ligeramente la animación de la cámara actual para trabajar en una Coroutine
.
nota: si aun no se resuelve tu pregunta por favor dejar un comentario y pronto lo podremos de nuevo , muchas gracias
sin mas,hasta la proxima