Tutorial Unity 2D: Cómo Crear Juegos 2D Paso a Paso con C
Crear juegos es una de las experiencias más gratificantes para cualquier desarrollador, especialmente cuando empiezas a dar vida a personajes, mundos y mecánicas interactivas. En este tutorial Unity 2D diseñado para desarrolladores principiantes e intermedios, aprenderás a construir un juego básico en 2D introduciendo conceptos esenciales como manejo de sprites, físicas básicas, animaciones y controles de usuario, todo implementado con C#.
¿Por qué Unity para crear juegos 2D?
Unity es uno de los motores más populares del mundo para desarrollo de videojuegos debido a su robustez, comunidad activa y facilidad para implementar tanto proyectos 2D como 3D. Además, su integración con C# permite una programación flexible y potente.
Índice
- Introducción al proyecto de juego 2D
- Configuración del entorno Unity
- Importación y manejo de sprites
- Aplicando físicas básicas con Rigidbody2D
- Creación de animaciones y animadores
- Programación de controles de usuario
- Conclusión y buenas prácticas
Introducción al proyecto de juego 2D
Vamos a crear un juego de plataformas simple donde un personaje podrá moverse lateralmente, saltar y animarse. Este tipo de juego es perfecto para aprender las bases del desarrollo juegos con C# en Unity.
Configuración del entorno Unity
-
Descarga e instala Unity Hub:
Descarga Unity Hub desde https://unity.com/es/download y luego instala la última versión LTS (Long-Term Support).
-
Crea un nuevo proyecto 2D:
- Abre Unity Hub.
- Click en Nuevo proyecto.
- Elige la plantilla 2D.
- Nómbralo “MiJuego2D” y selecciona la carpeta donde guardarlo.
- Presiona Crear.
- Familiarízate con el editor:
- La ventana Scene para editar niveles.
- La ventana Game para previsualizar el juego.
- Hierarchy muestra los objetos en escena.
- Inspector para modificar propiedades.
Importación y manejo de sprites
Los sprites son imágenes básicas que representan personajes, objetos y fondos en juegos 2D.
Paso 1: Importar sprites
- Descarga o crea imágenes PNG para tu personaje y fondo.
- Arrástralos a la carpeta “Assets” dentro de Unity.
Paso 2: Configurar sprites
- Selecciona el sprite en Assets.
- En el Inspector, asegúrate de que el Texture Type esté configurado a Sprite (2D and UI).
- Aplica los cambios si modificas.
Paso 3: Añadir sprite a la escena
- Arrastra el sprite desde Assets a la ventana Hierarchy o Scene.
- Cambia su posición usando las coordenadas X, Y en el Inspector.
Aplicando físicas básicas con Rigidbody2D
Unity brinda componentes que facilitan la implementación de físicas sin programar desde cero.
Paso 1: Añadir Rigidbody2D
- Selecciona tu personaje en la Hierarchy.
- En el Inspector, pulsa Add Component y añade Rigidbody2D.
Esto permitirá que el personaje se vea afectado por gravedad, fuerzas y colisiones.
Paso 2: Añadir colisionador 2D
Para que el personaje pueda colisionar con el suelo y plataformas:
- Agrega un componente BoxCollider2D o CapsuleCollider2D.
Para el suelo, asegúrate de que también tenga un colisionador 2D.
Paso 3: Crear el suelo
- Importa o crea un sprite para el suelo.
- Añade un BoxCollider2D.
- Marca la opción Is Trigger desactivada para que tenga colisión sólida.
Creación de animaciones y animadores
Las animaciones dan vida al personaje, mostrando cambios de estado como correr o saltar.
Paso 1: Preparar sprites para animación
- Necesitarás secuencias de sprites para diferentes acciones (por ejemplo, caminar).
Paso 2: Crear animación
- Ve a menú: Window > Animation > Animation.
- Selecciona el personaje en Hierarchy.
- En la ventana Animation, crea una nueva animación llamada “Caminar.anim”.
- Añade los sprites correspondientes arrastrándolos a la timeline.
Unity crea automáticamente un controlador de animación (Animator Controller).
Paso 3: Controlar animaciones desde código
- Abre el Animator Controller para configurar estados y transiciones, pero para este tutorial básico, usaremos triggers simples.
Programación de controles de usuario
Vamos a controlar el movimiento usando C#.
Paso 1: Crear script de movimiento
- En Assets, crea una carpeta llamada Scripts.
- Click derecho > Create > C# Script, nómbralo PlayerMovement.
- Haz doble clic para abrirlo en tu editor (Visual Studio o similar).
Paso 2: Código para movimiento lateral y salto
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
using UnityEngine; public class PlayerMovement : MonoBehaviour { public float moveSpeed = 5f; public float jumpForce = 10f; private Rigidbody2D rb; private bool isGrounded = false; private Animator animator; private SpriteRenderer spriteRenderer; void Start() { rb = GetComponent<Rigidbody2D>(); animator = GetComponent<Animator>(); spriteRenderer = GetComponent<SpriteRenderer>(); } void Update() { Move(); Jump(); Animate(); } private void Move() { float moveInput = Input.GetAxisRaw("Horizontal"); rb.velocity = new Vector2(moveInput * moveSpeed, rb.velocity.y); // Voltear sprite según dirección if (moveInput > 0) spriteRenderer.flipX = false; else if (moveInput < 0) spriteRenderer.flipX = true; } private void Jump() { if (Input.GetButtonDown("Jump") && isGrounded) { rb.velocity = new Vector2(rb.velocity.x, jumpForce); } } private void Animate() { bool isRunning = Mathf.Abs(rb.velocity.x) > 0.1f; animator.SetBool("isRunning", isRunning); animator.SetBool("isJumping", !isGrounded); } // Método para detectar contacto con suelo private void OnCollisionEnter2D(Collision2D collision) { if (collision.gameObject.CompareTag("Ground")) { isGrounded = true; } } private void OnCollisionExit2D(Collision2D collision) { if (collision.gameObject.CompareTag("Ground")) { isGrounded = false; } } } |
Paso 3: Configurar etiquetas y asignar script
- En tu objeto suelo, crea una etiqueta llamada Ground y asígnala.
- Arrastra el script PlayerMovement al personaje.
Paso 4: Configurar Inputs
- Por defecto, Unity tiene “Horizontal” para A/D o flechas y “Jump” para barra espaciadora.
Explicación paso a paso del código
Input.GetAxisRaw("Horizontal")lee la entrada lateral (izquierda/derecha).- Variamos la velocidad
rb.velocitypara mover el personaje. - El sprite se voltea para mirar a la dirección del movimiento.
- Para el salto, verificamos si está en el suelo (
isGrounded) y si se presionó el botón de salto. - Animaciones se actualizan con parámetros booleanos para correr y saltar.
- Mediante colisiones se determina si el personaje está tocando el suelo.
Conclusión
Hoy aprendiste a crear la base de un juego 2D paso a paso en Unity usando C#: desde la importación y manejo de sprites, implementación básica de físicas, creación de animaciones y movimientos controlados por el usuario.
Buenas prácticas para desarrollo juegos con C# y Unity 2D:
- Organiza tus Assets en carpetas (Sprites, Scripts, Animations).
- Usa prefabs para reutilizar objetos.
- Mantén tus scripts modulares y bien comentados.
- Aprovecha el sistema Animator para manejar estados complejos.
- Optimiza colisiones para evitar sobrecarga.
Sigue practicando con tus propios proyectos y experimenta variando parámetros y agregando nuevas mecánicas.
¡Ahora es tu turno! Empieza a crear juegos 2D paso a paso y comparte tus ideas en la comunidad. No olvides suscribirte a tutoriales especializados para seguir mejorando tu programación Unity.

