1.- En el tutorial anterior comenzamos poniendo un boxcollider2D para este ejemplo lo cambiaremos por un Circlecollider2D primero tendremos que removerlo.
2.- Ahora colocaremos nuestro Circle Collider en un punto que quede el circulo casi para tocar el suelo usando por supuesto las herramientas de mover collider.
3.- Ahora crearemos un GameObject Vacio, para ello le daremos en el menu GameObject > Create Empty, le asignamos un nombre por ejemplo marcadorSuelo y lo colocamos por debajo del personaje y le daremos un marcador para identificarlo.
4.- Ahora que ya tenemos nuestro marcador se lo asignaremos al jugador para que se vuelva hijo al igual a la cámara para que cuando movamos a nuestro jugador la cámara se mueva junto con el.
5.- Ahora compondremos el script agregando nuevas funcionalidades, le damos doble clic y agregamos el siguiente código.
ControlarJugador.cs
using UnityEngine; using System.Collections; public class ControlarJugador : MonoBehaviour { //variable para saltar public float alturaSalto; //variable para la velocidad del movimiento public float velocidadMovimiento; //Agregaremos un transform para asignarlo con el gameobject vacio public Transform marcadorSuelo; //El radio del marcador del suelo private float radioMarcadorSuelo; //El Layer que crearemos del suelo public LayerMask layerSuelo; //variable booleana para identificar si esta en el suelo o no private bool estaEnSuelo; //variable booleana para el doble salto private bool dobleSalto; // Use this for initialization void Start () { } //funcion que se usa cuando usamos fisica void FixedUpdate() { //para verificar el suelo estaEnSuelo = Physics2D.OverlapCircle(marcadorSuelo.position, radioMarcadorSuelo, layerSuelo); } // Update is called once per frame void Update () { //condicion de doble salto if(estaEnSuelo) { dobleSalto = false; } //MOVIMIENTO DEL PERSONAJE //Saltar, usamos la barra espaciadora para saltar //ahora verificamos con nuestro gameobject si esta tocando el suelo if(Input.GetKeyDown(KeyCode.Space) && estaEnSuelo) { //mando a llamar a mi funcion saltar Saltar(); } //Aqui si cumple las condiciones podra realizar el doble salto if(Input.GetKeyDown(KeyCode.Space) && !dobleSalto && !estaEnSuelo) { //mando a llamar a mi funcion saltar Saltar(); dobleSalto = true; } //Mover a la derecha, usamos la tecla D para movernos a la derecha. if (Input.GetKey(KeyCode.D)) { GetComponent<Rigidbody2D> ().velocity = new Vector2 (velocidadMovimiento, GetComponent<Rigidbody2D>().velocity.y); } //Mover a la izquierda, usamos la tecla A para movernos a la izquierda. if (Input.GetKey(KeyCode.A)) { GetComponent<Rigidbody2D> ().velocity = new Vector2 (-velocidadMovimiento, GetComponent<Rigidbody2D>().velocity.y); } } //Funcion que nos hace saltar public void Saltar() { GetComponent<Rigidbody2D>().velocity = new Vector2(GetComponent<Rigidbody2D>().velocity.x , alturaSalto); } }
6.- Ahora en nuestro script tendremos que asignarle nuestro marcadordesuelo que es nuestro game object para ello seleccionamos nuestro gameobject y se lo asignamos en la parte donde dice marcadorSuelo de nuestro Script.
7.- Una vez hecho eso crearemos dos layer nuevas el cual se llamaran Jugador y Suelo respectivamente.
8.- Ahora en nuestro jerarquía seleccionamos todo el nivel creado y le asignamos el layer de Suelo.
9.- Ahora nos vamos a nuestro script y en la parte donde le dimos la variable layerSuelo ahi colocaremos el layer Suelo.
10.- Ahora, el marcador de suelo es un indicador para saber cuando estamos tocando el suelo, el cual nos servirá para poder la interacción con nuestro nivel, el gameobject vació colisiona con el suelo y nos manda un valor para poder realizar la condición del doble salto, si queremos verificar esta variable nos vamos en la parte de arriba del inspector y le daremos en modo debug y presionaremos play para ver en acción esta variable, podemos darnos cuenta al presionar al jugador y dirigirnos al script, recuerda regresarlo como estaba para no perderte.
13.- Ya que tenemos todo, probamos para saber como nos quedo. En el siguiente ejemplo realizaremos la animación básica del personaje, saltar, quieto y correr(jump, idle, run).
Si te gusta este sitio y deseas que esto continué vivo tu apoyo sera importante, puedes dar clic en la publicidad si lo deseas o puedes donar algo en Patreon si puedes permitírtelo, con esto el proyecto empezara a tener un objetivo y dejara de navegar sin rumbo y empezara a convertirse en una comunidad que ayudara unos a los otros, saludos y excelente día.
Este comentario ha sido eliminado por el autor.
ResponderEliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarOjala sigas con esto tus tutoriales son los únicos que me han servido en todo YT
ResponderEliminarHola DA_LinkG1517, muchas gracias por tus palabras te lo agradezco de corazón, deseo continuar con el contenido, lo que me detiene en este momento es el trabajo, además no se cuanta gente este interesada ya que no he tenido retroalimentación y me gustaría saber si hay mas interesados, ya que este blog, lo comencé a manera de prueba y con el tiempo fue llegando mas visitantes pero nunca supe si lo estaba haciendo bien o si a alguien le interesaría así que en algún punto lo deje detrás y me ocupe en otras actividades. Si me pudieras compartir los temas que te gustaría aprender y ver si puedo hacer algo, intentare retomarlo, saludos. Los temas que se son Unity, UE4, incluso 3D con blender.
Eliminarme pareece muy bien contenido sencillo facil se aprender continua con esto
ResponderEliminarHola zas, muchas gracias, si, creo que si ya lo empecé debo retomarlo, aunque sea 1 o 2 personas, se que les puede ayudar bastante en su formación aunque sea algo básico para empezar, intentare encontrar un hueco para crear contenido ya que siempre me toma tiempo en organizarme y pensar en los temas de interés, por el momento será todo escrito por falta de un buen equipo, y si va bien, intentare hacer videotutoriales que seria lo ideal, saludos y gracias por tus palabras.
Eliminaruna pregunta a mi cuando salto una vez no me deja volver a saltar
ResponderEliminar