NiixerUnityvideo juegos

Cómo hacer un juego Shooter en Unity paso a paso — Guía completa con IA

Introducción

Shooter Game es un videojuego de disparos en tercera persona desarrollado en Unity como proyecto universitario. La idea principal era crear un juego completo con varios niveles, selección de personaje, enemigos con inteligencia artificial y un sistema de HUD funcional, todo construido desde cero usando las herramientas que ofrece Unity.

El juego cuenta con cuatro niveles, cada uno con un escenario distinto: desde un terreno con montañas y vegetación hasta un mapa desértico. El jugador avanza por los niveles eliminando enemigos, con un sistema de vida, munición, puntaje y conteo de bajas visible en pantalla en todo momento.

Para el desarrollo de los scripts del juego se utilizó inteligencia artificial como herramienta de apoyo, lo que permitió generar el código de forma más eficiente y enfocarse en la integración, configuración y ajuste de cada sistema dentro de Unity. El siguiente documento explica paso a paso cómo se armó todo el proyecto, desde la configuración inicial hasta las escenas de menú.

Guía completa para crear un juego shooter en Unity desde cero

PASO 1 — Configurar el proyecto en Unity

Para este juego shooter en Unity usamos la plantilla 3D (URP) porque ya trae configurado el sistema de iluminación y renderizado que necesitamos, lo que nos evita ajustes técnicos desde el principio

1.1 Crear el proyecto

  1. Abre Unity Hub
  2. Click en “New Project”
  3. Selecciona la plantilla “3D (URP)” — Universal Render Pipeline
  4. Nómbralo por ejemplo: ShooterGame
  5. Click “Create Project”

1.2 Importar Starter Assets

  1. Ve a Window → Package Manager
  2. En la esquina superior izquierda cambia a “Unity Registry”
  3. Busca “Starter Assets – Third Person Character Controller”
  4. Click Install

PASO 2 — Crear y configurar las escenas

2.1 Crear las escenas

  1. En el Project panel, clic derecho en la carpeta Scenes
  2. Create → Scene — nómbrala MainMenu
  3. Repite y crea:
    • CharSelect
    • Level1
    • Level2
    • Level3
    • Level4

2.2 Agregarlas al Build

  1. File → Build Settings
  2. Arrastra cada escena en este orden:
    • MainMenu
    • CharSelect
    • Level1
    • Level2
    • Level3
    • Level4

En este juego shooter en Unity cada nivel tiene un escenario diferente, desde un terreno con montañas y vegetación hasta un mapa desértico, para que la experiencia de juego no se sienta repetitiva

PASO 3 — Configurar Level1

  1. Abre la escena Level1 (doble clic)
  2. Ve a:
Assets → StarterAssets → ThirdPersonController → Scenes
  1. Abre “Playground”
  2. Copia todos los objetos de Playground y pégalos en tu escena Level1

Agregar Spawn Points en Level1

  1. En la Hierarchy clic derecho → Create Empty
  2. Nómbralo SpawnPoint_1
  3. Muévelo a una esquina del mapa
  4. Repite y crea SpawnPoint_2, SpawnPoint_3, SpawnPoint_4
  5. Ubícalos en diferentes esquinas del mapa

Agrupamos los spawn points:

  1. Crea un Empty → nómbralo SpawnPoints
  2. Arrastra los 4 spawn points dentro de ese objeto como hijos

PASO 4 — Configurar Level2

  1. Abre la escena Level1 (doble clic)
  2. Primero creamos un Terreno
  3. En el Inspector usamos Paint Terrain para darle forma de montañas al terreno
  4. Después con Paint Texture le damos color al terreno

También pintamos pasto para darle más contorno al terreno

También agregamos árboles y piedras para darle más vida al nivel, vamos al Inspector, damos clic en Add Tree, elegimos el árbol que queremos y lo pintamos en el terreno.

Agregar Spawn Points en Level2

  1. En la Hierarchy clic derecho → Create Empty
  2. Nómbralo SpawnPoint_1
  3. Muévelo a una esquina del mapa
  4. Repite y crea SpawnPoint_2, SpawnPoint_3, SpawnPoint_4
  5. Ubícalos en diferentes esquinas del mapa
  6. Arrastra los 4 spawn points dentro de ese objeto como hijos

PASO 5 — Configurar Level3

  1. Abre la escena Level3 (doble clic)
  2. Vamos a nuestros My Assets e importamos un nuevo assets ‘Low Poly FPS Map Lite’ que nos ayudara a crear nuestro nuevo escenario
  3. Como el asset trae un demo de escenario, lo copiamos directo y lo pegamos en el nivel 3

Agregar Spawn Points en Level3

  1. En la Hierarchy clic derecho → Create Empty
  2. Nómbralo SpawnPoint_1
  3. Muévelo a una esquina del mapa
  4. Repite y crea SpawnPoint_2, SpawnPoint_3, SpawnPoint_4
  5. Ubícalos en diferentes esquinas del mapa
  6. Arrastra los 4 spawn points dentro de ese objeto como hijos

PASO 6 — Configurar Level4

  1. Abre la escena Level4 (doble clic)
  2. Vamos a nuestros My Assets e importamos un nuevo assets ‘Low-Poly Desert Environment Pack’ que nos ayudara a crear nuestro nuevo escenario
  3. Igual que el nivel anterior, el asset trae un demo así que lo copiamos y lo pegamos en el nivel 4

Agregar Spawn Points en Level4

  1. En la Hierarchy clic derecho → Create Empty
  2. Nómbralo SpawnPoint_1
  3. Muévelo a una esquina del mapa
  4. Repite y crea SpawnPoint_2, SpawnPoint_3, SpawnPoint_4
  5. Ubícalos en diferentes esquinas del mapa
  6. Arrastra los 4 spawn points dentro de ese objeto como hijos

Con las escenas listas, pasamos a crear el personaje.

Paso 1 — Crear carpetas

En Assets/Characters/ crea estas subcarpetas:

Characters/
├── Textures/
└── model.fbx

Paso 2 — Importar en este orden:

  1. Primero arrastra TODAS las imágenes (.jpg y .png) a Assets/Characters/Textures/
  2. Luego arrastra el model.fbx a Assets/Characters/

Ojo: hay que importar las texturas ANTES que el FBX para que Unity las detecte solas.

Paso 3 — Configurar el Rig

  1. Selecciona model.fbx
  2. Inspector → pestaña “Rig”
  3. Animation Type“Humanoid”
  4. Click “Apply”

Para poner el personaje en Level1 hacemos lo siguiente:

  1. Ve a Assets → StarterAssets → ThirdPersonController → Character
  2. Busca el prefab PlayerArmature
  3. Arrástralo a la escena

Reemplazar el mesh

  1. En la Hierarchy expande PlayerArmature
  2. Busca el objeto hijo que se llama Geometry o Armature_Mesh
  3. Selecciónalo y desactívalo (desmarca el checkbox en el Inspector)
  4. Arrastra tu model de Avaturn como hijo del PlayerArmature

Crear el enemigo

El enemigo es clave en cualquier juego shooter en Unity, por eso usamos un Nav Mesh Agent para que se mueva solo por el mapa y pueda seguir al jugador de forma automática

Paso 1 — Crear el prefab del enemigo

  1. Ve a Assets → StarterAssets → ThirdPersonController → Character → Models
  2. Arrastra el modelo del robot a la escena Level1
  3. Renómbralo Enemy en la Hierarchy

Paso 2 — Agregar componentes

Selecciona el Enemy y en el Inspector agrega estos componentes con Add Component:

  • Nav Mesh Agent: para que se mueva por el mapa
  • Capsule Collider: para colisiones
  • EnemyAI
  • EnemyHealth

Paso 3 — Configurar el Tag

  1. En el Inspector arriba → Tag → “Enemy”
  2. Si no existe → click “Add Tag” → crea Enemy

Paso 4 — Asignar patrol points

En el componente EnemyAI:

  • Arrastra los SpawnPoint_1, SpawnPoint_2, etc. al campo Patrol Points

Ya con los enemigos en todos los niveles, toca configurar el GameManager y el HUD

Paso 1 — Crear el objeto

  1. Abre Level1
  2. Hierarchy → clic derecho → Create Empty
  3. Nómbralo GameManager

Paso 2 — Agregar scripts

Selecciona GameManagerAdd Component y agrega:

  • GameManager
  • AudioManager
  • ParticleManager

Paso 3 — Configurar GameManager script

En el componente GameManager:

  • Enemies Per Level: 10
  • Total Levels: 4

Crear el Canvas HUD en Level1

Paso 1 — Crear el Canvas

  1. Abre Level1
  2. Hierarchy → clic derecho → UI → Canvas
  3. Nómbralo HUD
  4. Selecciónalo → Inspector → Canvas Scaler:
    • UI Scale Mode: Scale With Screen Size
    • Reference Resolution: X:1920 Y:1080

Paso 2 — Crear elementos del HUD

Dentro del Canvas HUD crea estos elementos:

Vida:

  • clic derecho sobre HUD → UI → Slider → nómbralo HealthBar
  • clic derecho sobre HUD → UI → Text – TextMeshPro → nómbralo HealthText

Munición:

  • UI → Text – TextMeshPro → nómbralo AmmoText

Score:

  • UI → Text – TextMeshPro → nómbralo ScoreText

Kills:

  • UI → Text – TextMeshPro → nómbralo KillCountText

Nivel:

  • UI → Text – TextMeshPro → nómbralo LevelText

Recargando:

  • UI → Text – TextMeshPro → nómbralo ReloadingText

Paso 3 — Posicionar elementos

HealthBar (vida)

  1. Selecciona HealthBar
  2. Inspector → Rect Transform:
    1. Anchor: arriba izquierda
    2. Pos X: 150 Pos Y: -30
    3. Width: 200 Height: 20

HealthText:

  1. Clic en HealthText en la Hierarchy
  2. AnchorShift + clic en top-left
  3. Rect Transform:
    1. Pos X: 150 | Pos Y: -55
    1. Width: 200 | Height: 30
  4. Text (TMP) → 100 / 100

AmmoText:

  1. Clic en AmmoText en la Hierarchy
  2. AnchorShift + clic en bottom-right (abajo derecha)
  3. Rect Transform:
    • Pos X: -100 | Pos Y: 50
    • Width: 200 | Height: 30
  4. Text (TMP) → escribe: 30 / 30

ScoreText:

  1. Clic en ScoreText en la Hierarchy
  2. AnchorShift + clic en top-center (arriba centro)
  3. Rect Transform:
    1. Pos X: 0 | Pos Y: -30
    1. Width: 200 | Height: 30
  4. Text (TMP) → Score: 0

KillCountText:

  1. Clic en KillCountText en la Hierarchy
  2. AnchorShift + clic en top-right (arriba derecha)
  3. Rect Transform:
    • Pos X: -100 | Pos Y: -30
    • Width: 200 | Height: 30
  4. Text (TMP) → Kills: 0 / 10

LevelText:

  1. Clic en LevelText en la Hierarchy
  2. AnchorShift + clic en top-center (arriba centro)
  3. Rect Transform:
    • Pos X: 349 | Pos Y: -31
    • Width: 200 | Height: 30
  4. Text (TMP) → Level 1
  1. Clic en ReloadingText en la Hierarchy
  2. AnchorShift + clic en center (centro, el del medio)
  3. Rect Transform:
  4. Pos X: 0 | Pos Y: -50
  5. Width: 300 | Height: 50
  6. Text (TMP) → RECARGANDO…
  7. Color del texto → rojo
  8. Este texto debe estar desactivado por defecto — quitar el checkmark arriba en el Inspector

Conectar el HUD a los scripts

Ahora hay que hacer que el UIManager sepa dónde están estos elementos.

Clic en GameManager en la Hierarchy → Inspector → busca el componente UIManager (Script)

Conecta uno por uno — arrastra desde la Hierarchy

Campo en UIManagerArrastra este objeto de la Hierarchy
Health BarHealthBar
Health TextHealthText
Ammo TextAmmoText
Score TextScoreText
Kill Count TextKillCountText
Level TextLevelText
Reloading TextReloadingText

Ahora lo que haremos sera crear el disparo

  1. Crear un objeto vacío dentro de model y nombrarlo FirePoint.
  2. Configurar su posición en el Inspector:
  3. X: 0
  4. Y: 1.5
  5. Z: 1
    Esto coloca el punto de disparo cerca de las manos del personaje.
  6. Seleccionar model y abrir el script PlayerShooting en el Inspector.
  7. Cambiar Current Ammo de 0 a 30.
  8. Conectar los campos obligatorios:
CampoQué arrastrar
Player CameraMainCamera desde la Hierarchy
Gun BarrelFirePoint recién creado

Ahora configuraremos el MainMenu, iremos a la Escena MainMenu y crearemos unos Canvas, un fondo y un título y botones

Paso 1 — Crear el Canvas

  1. Clic derecho en la HierarchyUICanvas
  2. Renómbrarlo como MainMenuCanvas
  3. En el Inspector → Canvas ScalerScale With Screen Size → Reference Resolution: 1920 x 1080

Paso 2 — Crear el fondo

  1. Clic derecho en MainMenuCanvasUIImage
  2. Renómbrarlo como Background
  3. Rect Transform → Anchor: stretch-stretch (el de la esquina inferior derecha en el Anchor Preset)
  4. Left/Right/Top/Bottom: 0  
  5. Color → azul oscuro

Paso 3 — Crear el título

  1. Clic derecho en MainMenuCanvasUIText - TextMeshPro
  2. Renómbralo TitleText
  3. Anchor: top-center
  4. Pos X: 0 | Pos Y: -100
  5. Width: 600 | Height: 100
  6. Texto: SHOOTER GAME
  7. Font Size: 72 | Alineación: centro | Color: blanco

Paso 4 — Botón Jugar

  1. Clic derecho en MainMenuCanvasUIButton – TextMeshPro
  2. Renómbralo PlayButton
  3. Anchor → Shift + clic en center
  4. Pos X: 0 | Pos Y: 50
  5. Width: 250 | Height: 60
  6. Expande el botón → clic en Text (TMP) → escribe: JUGAR

Paso 5 — Botón Salir

  1. Clic derecho en MainMenuCanvasUIButton – TextMeshPro
  2. Renómbralo QuitButton
  3. Anchor → Shift + clic en center
  4. Pos X: 0 | Pos Y: -50
  5. Width: 250 | Height: 60
  6. Texto: SALIR

Ahora conectaremos el PlayButton y el QuitButton para ello

  1. Clic en MainMenuCanvas en la Hierarchy → Add Component → busca MainMenu → agrégalo
  2. Conectar PlayButton:
  3. Clic en PlayButton
  4. Inspector → componente Button → sección On Click ()
  5. Clic en +
  6. Arrastra MainMenuCanvas al campo vacío
  7. En el dropdown que dice No Function → selecciona MainMenu → PlayGame()

Conectar QuitButton igual pero selecciona MainMenu → QuitGame()

Ahora configuraremos el CharSelect, iremos a la Escena CharSelect y crearemos unos Canvas, un fondo y un título y botones

Paso 1 — Canvas

  1. Clic derecho en Hierarchy → UICanvas
  2. Renómbralo CharSelectCanvas
  3. Inspector → Canvas ScalerScale With Screen Size1920 x 1080

Paso 2 — Fondo

  1. Clic derecho en CharSelectCanvasUIImage
  2. Renómbralo Background
  3. Anchor → Alt + Shift + clic en stretch-stretch
  4. Color → R:20 G:20 B:60 A:255
  5. Verifica que Left, Right, Top, Bottom sean todos 0

Paso 3 — Título

  1. Clic derecho en CharSelectCanvasUIText - TextMeshPro
  2. Renómbralo TitleText
  3. Anchor → Shift + clic en top-center
  4. Pos X:0 | Pos Y:-80 | Width:700 | Height:80
  5. Texto: SELECCIONA TU PERSONAJE
  6. Font Size:48 | Centro | Color: blanco

Paso 4 — Botón Jugar

  1. Clic derecho en CharSelectCanvasUIButton - TextMeshPro
  2. Renómbralo PlayButton
  3. Anchor → Shift + clic en bottom-center
  4. Pos X:0 | Pos Y:80 | Width:250 | Height:60
  5. Expande el botón → clic en Text (TMP) → escribe: JUGAR

Paso 5 — Botón Volver

  1. Clic derecho en CharSelectCanvasUIButton - TextMeshPro
  2. Renómbralo BackButton
  3. Anchor → Shift + clic en bottom-center
  4. Pos X:0 | Pos Y:-30 | Width:250 | Height:60
  5. Texto: VOLVER

Una vez completados todos los pasos anteriores, el siguiente y último proceso es conectar los scripts que ya vienen adjuntos al proyecto. Estos scripts contienen toda la lógica del juego: el comportamiento de los enemigos, el sistema de disparo, el manejo del HUD, el GameManager y demás componentes que hacen que el juego funcione.

Para conectarlos, basta con arrastrar cada script a su objeto correspondiente en la Hierarchy tal como se fue indicando a lo largo de este documento. Con eso el juego queda completamente funcional y listo para probar desde el editor o exportar como build.

Todos los scripts fueron generados con apoyo de inteligencia artificial y están listos para usarse sin necesidad de modificarlos, siempre y cuando se haya seguido el orden de configuración descrito en este paso a paso.

Conclusiones

Con esto el juego shooter en Unity queda completamente funcional. Los cuatro niveles están configurados con sus propios escenarios, el personaje es seleccionable desde el menú, los enemigos se mueven y reaccionan con inteligencia artificial, y toda la interfaz de HUD está conectada y mostrando la información en tiempo real.

Solo queda conectar los scripts adjuntos al proyecto arrastrándolos a sus objetos correspondientes en la Hierarchy, tal como se fue indicando a lo largo de esta guía. Una vez hecho eso, el juego está listo para probarse desde el editor o exportarse como build final.

CRÉDITOS

Autor: Juan Sebastián Salamanca Gómez

Editor: Mag. Ingeniero Carlos Pinzón Romero.

Código: UCMV-9

Universidad: Universidad Central

FUENTES

LuisCanary. (2025, 13 octubre). Crea un MUNDO ABIERTO 3D en Unity en SOLO 7 MINUTOS [Vídeo]. YouTube. https://www.youtube.com/watch?v=N5TmYZYIij4
LuisCanary. (2021, 27 mayo). Aprende a CREAR un VIDEOJUEGO de DISPAROS en Unity Tutorial 2026/Introduccion/1-Capitulo [Vídeo]. YouTube. https://www.youtube.com/watch?v=y96ADRamixc
Technologies, U. (s. f.). Unity - Manual: Canvas. https://docs.unity3d.com/es/530/Manual/UICanvas.html