hola en esta ocacion aprenderemos a mover un cubo atraves del escenario usando el teclado y el mouse de nuestro pc - para eso crearemos un improvisado escenario por donde se desplazara nuestro jugador. - crea un cubo y estiralo para hacer el piso luego renombralo suelo o piso. - crear otro cubo pero este dejalo como esta y renombralo player. - crea una luz direccional para que nuestra escena este iluminada. - crea un script llamado MovimientoJugador deberias tener algo como esto. abre el script MovimientoJugador crea 2 variables publicas de tipo float una para la velocidad de desplazamiento y una para la velocidad de giro deveria quedarte asi using UnityEngine; using System.Collections; public class MovimientoJugador : MonoBehaviour { public float velocidadDespzamiento; public float velocidadGiro; void Update () { } } ahora agamos una condicion para saber si el jugador ha oprimido una tecla en este caso la flecha arriva. dentro de esa condicion aremos la logica para que el cuvo se mueva acea adelante si el usuario ha precionado la flecha arriva if (Input.GetKey(KeyCode.UpArrow)) { this.transform.Translate(Vector3.forward * velocidadDespzamiento); } veamos que hace este codigo if () : condicion que debuelve falso o verdadero segun lo que preguntemos dentro del parentesis Input: clase que nos sirve para usar los diferentes dispocitivos de entrada GetKey: metodo de la clase input que nos dice si una tecla esta precionada. KeyCode.UpArrow: le decimos el codigo o nombre del boton que verifique si esta precionado en este caso es up arrow o tecla arriva this.transform: nos devuelve el objeto(con el componente transform) que porta el script, en este caso el cubo Translate(): metodo que usamos para cambiar las propiedades position del objeto cubo. en medio de los parentesis le desimos asea donde se va a mover (Vector3.forward * velocidadDespzamiento): aqui le espesificamos que se mueva acea adelante y lo multiplicamos por una velocidad de desplazamiento nota: vector3.forward es lo mismo que decir new vector3(0,0,1) } en conclucion se movera de 1 en 1 en el eje z mientras tenga precionada la tecla flecha arriva haora lo mismo para moverse en las otras direcciones nos quedaria asi. using UnityEngine; using System.Collections; public class MovimientoJugador : MonoBehaviour { public float velocidadDespzamiento; public float velocidadGiro; void Update () { if (Input.GetKey(KeyCode.UpArrow)) { this.transform.Translate(Vector3.forward * velocidadDespzamiento); } if (Input.GetKey(KeyCode.DownArrow)) { this.transform.Translate(Vector3.back * velocidadDespzamiento); } if (Input.GetKey(KeyCode.LeftArrow)) { this.transform.Translate(Vector3.left * velocidadDespzamiento); } if (Input.GetKey(KeyCode.RightArrow)) { this.transform.Translate(Vector3.right * velocidadDespzamiento); } if (Input.GetKey(KeyCode.RightArrow)) { this.transform.Translate(Vector3.right * velocidadDespzamiento); } } } haora ya pueden provarlo.. guarda los cambios y ve a unity, arrastra el script movimientoJugador a el objeto player (cubo) y en el inspector cambia las variables a 1 si deveria quedar ahora dale play al juego y veras que si oprimes las flechas el cubo se movera!!!! bien ahora agamos que rote con el mouse para esto agregamos las siguientes lineas de codigo float horizontal = Input.GetAxis("Mouse X"); this.transform.Rotate(Vector3.up * horizontal*velocidadGiro); veamos que ace el codigo float horizontal = Input.GetAxis("Mouse X"; creamos una variable de tipo float que guardara si estamos moviendo el mouse hacia la derecha o izquierda.. el get axis devuelve un valor entre -1 y 1 si no se mueve el mouse el valor sera 0. this.transform.Rotate(Vector3.up * horizontal*velocidadGiro); usamos el método rotate para girar el cubo en el eje y lo multiplicamos por la variable horizontal y por la velocidad de giro guarda los cambios y ejecuta el juego en unity y al mover el mouse el cubo rotara nota: el rigid body lo usaremos para hacer saltar el cubo en el proximo tuto... espero les haya servido ....
tutorial Unity3D C# Mover Un Objeto
Datos archivados del Taringa! original
56puntos
4,227visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
2visitas
0comentarios
Dar puntos: