Ir al contenido principal

Character controller en Unity con el nuevo input system

Versión de Unity 2020.3.16f1
Versión del paquete Input System 1.0.2

 


El siguiente es un ejemplo de como podemos aplicar la implementación del movimiento que aparece descrita en la documentación de CharacterController ( https://docs.unity3d.com/ScriptReference/CharacterController.Move.html ) con el nuevo packete de Input System.


El ejemplo descrito aquí puede ser descargado desde el repositorio publico en la URL: https://github.com/montblack/SamplesProject

1. Instalar el paquete Input System:

En el edito de Unity3D abrir Window > Package Manager y en esta ruta habilitar el paquete Input System



 2. Crear la configuración de los controles

Dentro de los assets crea un nuevo elemento de tipo Input Actions


Se te abrirá una configuración por defecto, para nuestro ejercicio solo nos faltaría adicionar el botón de salto, en la sección de Actions agrega una nueva acción de nombre Jump, en esa nueva acción agrega (haciendo clic sobre el símbolo más que aparece junto a la acción) un Action Binding y en path busca dentro de Keyboard la tecla que quieras asociar, en mi caso he asociado la tecla espacio y recuerda marcar el esquema de control Keyboard&Mouse:

3. Configura el personaje

A tu personaje agrégale un componente de tipo CharacterController, configúralo de acuerdo a tu personaje, ten en cuenta que una configuración errónea puede afectar el funcionamiento del movimiento o salto, en nuestro ejercicio usamos una capsula muy sencilla y modificamos la propiedad Min Move Distance a 0 para detecte correctamente si esta tocando el suelo.


Agrega también un componente de tipo Player Input y en Action coloca el archivo Input Action que creamos en el paso anterior, para la opción Behaviour selecciona el valor Send Message para que automáticamente busque dentro de los scripts métodos que coincidan con el nombre de la acción en nuestro caso OnJump, este listado de nombre se puede ver en una descripción al final.


4. Script

Crea un script con el nombre que desees y agrégalo como componente al personaje, el script descrito a continuación lo puedes encontrar aqui: https://github.com/montblack/SamplesProject/blob/main/Assets/Scripts/NewInputMovementPlayerController.cs

  1. Método OnMove, Aqui leemos el valor de la entrada y lo asignamos a la variable move, este contiene los ejes x,y que el jugador ha presionado



  2. Método OnJump, aqui calcularémos la variable playerVelocity la cual solo usamos el eje y ya que nos interesa solo calcular la velocidad vertical o de "salto", para ello verificamos que el personaje este tocando el suelo y que la tecla haya sido presionado, esto es importante porque el método también detecta cuando la tecla es soltada; luego hacemos un cálculo de la gravedad (gravityValue) y el alto del salto (jumpHeight) para calcular la altura máxima y movemos al personaje teniendo en cuenta el delta del tiempo.






  3. Por ultimo en el método Update usamos las variables de movimientos anteriormente calculadas para colocar la velocidad en y como cero si el personaje está tocando el suelo, luego movernos en la dirección calculada y por ultimo calcular cuando desciende del aire el personaje de acuerdo a la velocidad de la gravedad










Comentarios

Entradas populares de este blog

Cargar Un Modelo 3D De Blender En JavaFX

EL día de hoy he estado experimentando con las nuevas características del Preview del JDK8 y de JavaFX8 mas específicamente con 3D. lo que vamos a ver hoy es como cargar en JavaFX un modelo 3D exportado desde Blender al formato Collada. Lo primero son las herramientas, para este caso me encuentro utilizando el siguiente PC: Windows 8.1 Preview de 64bits Procesador AMD FX de 8 nucleos, con 4 GB de RAM. Y tengo instalado el siguiente software: JDK8 Early Access Build 101 Blender 2.6 Netbeans 7.4 Beta. Ahora si podemos empezar. Lo primero que debemos hacer es crear un modelo básico en Blender o en su defecto descargar uno libre, para efectos de esta prueba incluso el básico cubo que trae por defecto una nueva escena de Blender nos puede servir. Paso a seguir exportamos nuestro modelo al formato Collada, primero seleccionamos el objeto y luego accedemos a la opcion del menú file>export>Collada(.dae). En las opciones que nos nuestra marcamos el check "Sele

Bienvenidos

BIENVENIDOS bienvenidos a mi blog donde colocaré todos mis avances, análisis, técnicas, concejos y recomendaciones que aplique en las áreas de: Desarrollo de software en ambiente web. Desarrollo de software Java Desarrollo de software para móviles. Desarrollo de software con interfaces 3d para web o escritorio. Desarrollo de de videojuegos, entornos virtuales y animaciones. Diseño y modelado de 3d. Noticias, curiosidades y opiniones de tecnología. cualquier otro tema pertinente Agradezco su colaboración siguiendo este blog, y sus opiniones :) . Fecha De lanzamiento: miércoles 06 de abril de 2011.