Rodeo OVNI
Vienen a por tus vacas, pero tienes algunos trucos bajo la manga. Utiliza tu picana supercargada para eliminar a los ovnis y salvar a tu rebaño.

Hazlo tuyo con los proyectos de muestra
Estudio: Sistema de puntuación
Este proyecto demuestra un sencillo sistema de seguimiento de puntuaciones utilizando Niantic Studio.
Ver ejemplo de proyecto
Estudio: Entidades itinerantes
Este proyecto muestra cómo crear entidades itinerantes en Niantic Studio.
Ver ejemplo de proyecto
Estudio: Spawning System
Este proyecto muestra cómo generar entidades 3D de forma dinámica utilizando un componente personalizado en Niantic Studio.
Ver ejemplo de proyectoBehind the Build: UFO Rodeo
Written by UFO Rodeo Team
March 26, 2025
Introduction
El granjero Joe Zamora lleva mucho tiempo viendo extrañas luces en el cielo de su rancho ganadero de Nuevo México, pero ahora vienen a por sus vacas.
Afortunadamente, sus ovnis de alta tecnología no están a la altura del ingenio de su país.
Utiliza tu picana supercargada para derribar a los ovnis mientras intentan transportar a tu ganado. Elimina tantas como puedas antes de perder todas tus vacas.
UFO Rodeo tiene muchas piezas que lo hacen funcionar. Para demostrar su funcionamiento, lo hemos dividido en tres proyectos principales. No dudes en clonar el código base tanto del UFO Rodeo completo como de las funciones que lo acompañan para obtener más información.
Score Counter Sample Project
Este proyecto muestra un sencillo sistema de contador de puntuaciones utilizando Niantic Studio. Aprenderás a:
- Aumentar o disminuir una puntuación al pulsar sobre diferentes entidades.
- Mostrar y actualizar la puntuación en un elemento UI en tiempo real.
- Activar efectos de partículas simples cuando cambia la puntuación.
Estructura del proyecto
A continuación se muestra un breve resumen de las carpetas y archivos clave:
├── assets/ // Activos multimedia adicionales (imágenes, modelos, etc.)
├── counter.ts // Script principal que define el componente Contador de puntuaciones
├── cleanup.ts // Utilidad para limpiar los escuchadores de eventos
└── README.md // Este archivo README
Jerarquía Entidades Visión general
- contador
- Una entidad que tiene el componente añadido.
- Configura referencias a la entidad de incremento, entidad de decremento, y entidad de puntuación UI.
- Entidad de incremento
- Un objeto 3D (por ejemplo, el cubo púrpura) que incrementa la puntuación cuando se toca.
- Entidad de Disminución
- Otro objeto 3D que disminuye la puntuación cuando se toca.
- Score UI Entidad
- Un elemento de interfaz de usuario basado en texto o texto 3D que muestra la puntuación actual.
Cómo funciona
- Componente Contador
- Registrado en . El ECS hace referencia a tres propiedades críticas:
- se toca para aumentar la puntuación.
- se toca para reducir la puntuación.
- el texto o elemento UI que muestra la puntuación actual.
- Registrado en . El ECS hace referencia a tres propiedades críticas:
- Receptores de Eventos
- El script utiliza eventos en las entidades de incremento y decremento para ajustar la puntuación.
-
- Actualizaciones de Puntuación & UI
- Cada vez que la puntuación cambia, el script llama a , que actualiza el texto en la pantalla.
-
- Efectos de Partículas
- La función genera una ráfaga de partículas aleatorias en cualquier entidad que haya sido tocada, añadiendo un extra de retroalimentación visual.
-
- Limpieza
- Cuando se elimine el componente, asegúrese de que los escuchadores de eventos y las referencias se borran para evitar fugas de memoria
Primeros pasos
- Clone o importe este proyecto
- Clone este proyecto de ejemplo en su espacio de trabajo desde esta página: https://www.8thwall.com/uforodeo/score-system
- Reemplace las geometrías de incremento y decremento con los objetos/modelos deseados
- Si cambia los modelos o nombres de los objetos asegúrese de actualizar sus referencias en los desplegables de la interfaz de usuario de los componentes del contador.
-
- Vista previa
- Haga clic en el botón Construir y pruebe en su dispositivo o utilizando el simulador. Al tocar los objetos de incremento/decremento se actualiza la puntuación mostrada y se activan efectos de partículas.
Personalización
- Puntuación Inicial
- Puedes modificar el campo si quieres una puntuación inicial distinta de cero.
- Efectos de partículas
- Ajusta las propiedades en (por ejemplo, , , , etc.) para cambiar el aspecto de la explosión de partículas.
- Estilo de la interfaz de usuario
- Dependiendo del tipo que elijas, puedes darle estilo a través del sistema de interfaz de usuario de Studios o mediante CSS personalizado si utilizas la superposición HTML 2D.
Solución de problemas
- La puntuación no se actualiza
- Asegúrese de que ha asignado las entidades correctas en el Inspector para incremento, decremento y puntuación.
- Verifique que tiene el componente adjunto como un componente personalizado a su objeto contador.
- No hay efectos de partículas
- Comprueba que la función tiene un sprite válido y que la entidad soporta un emisor de partículas.
Roaming Entities Tutorial
Este proyecto muestra cómo crear entidades 3D itinerantes (en este caso, ovnis) con Niantic Studio. Aprenderá a:
- Asignar un componente personalizado a modelos 3D en tu escena.
- Mover y animar entidades entre posiciones aleatorias usando una simple máquina de estados.
- Detectar colisiones y disparar efectos de partículas para retroalimentación visual.
Estructura del proyecto
├── assets/│ └── ufo.glb // Modelo 3D del OVNI
├── roaming_entity.ts // Script principal que define el componente roaming_entity
├── cleanup.ts // Utilidad para limpiar los escuchadores de eventos
└── README.md // Este archivo README
Archivos clave
- Define un componente con una máquina de estados (/) para mover el OVNI a posiciones aleatorias.
- Establece colisionadores, posiciones y escuchadores de colisión que activan efectos de partículas.
- Proporciona funciones de ayuda (, ) para eliminar eventos y referencias cuando se elimina un componente.
Cómo funciona
- Roaming Entity Component
- Registrado en. El OVNI se coloca inicialmente en, y luego se le asigna un colisionador Cilindro.
- Se activa un escuchador de colisiones, que genera una breve ráfaga de partículas.
- Máquina de estados
- Ciclo PING → PONG:
- Al entrar en cada estado, el OVNI pasa a una nueva posición aleatoria mediante.
- Un retardo aleatorio determina el tiempo que transcurre antes de que vuelva a cambiar de estado, creando una itinerancia continua.
- Ciclo PING → PONG:
-
-
-
-
- Manejo de colisiones Se utiliza
- . Cuando el OVNI colisiona, se emiten partículas.
- Después de una corta duración, el emisor de partículas y una animación de rotación son eliminados, reiniciando el OVNI para su próxima colisión.
- Limpieza
- Los escuchadores de eventos para la colisión son rastreados y posteriormente eliminados para prevenir fugas de memoria, usando y.
Empezando
- Clonar este proyecto
- Clona este proyecto de ejemplo en tu espacio de trabajo desde esta página: https://www.8thwall.com/uforodeo/roaming-entities
- Asignar el componente
- Si añades o cambias modelos/entidades de los ufos, asegúrate de adjuntar el componente personalizado 'roaming_entity.ts' a cada uno.
- Verifique o cambie los activos
- Si utiliza su propio modelo, asegúrese de sustituir la referencia 'assets/ufo.glb' en el archivo del componente 'roaming+entity.ts
- Construir & Vista previa
- Pulsa Build para ejecutar o publicar el proyecto.
- Observa cómo tus objetos deambulan por la escena, colisionando ocasionalmente y generando efectos de partículas.
Personalización
- Ajustes de movimiento
- Edita para ajustar distancias aleatorias o establecer nuevas posiciones mín./máx.
- Ajústalo para que el desplazamiento sea más rápido o más lento.
-
- Efectos de partículas
- En , ajusta propiedades como , , , y para cambiar el aspecto de la explosión.
-
- Forma y tamaño de la colisión
- Cambia el colisionador Cilindro por otra forma si lo prefieres. Cambia el tamaño para dar a tus objetos más espacio respecto a otros objetos antes de colisionar.
- Facilitación de la animación
- Experimente con diferentes valores (, , , etc.) para personalizar el estilo de movimiento de los objetos
Solución de problemas
- No hay movimiento
- Asegúrese de que el componente está unido a cada OVNI en el Inspector.
- Confirme que las transiciones de la máquina de estados ( → ) se están activando (compruebe los registros de la consola).
- No hay movimiento aleatorio
- Compruebe que la función devuelve números válidos.
- Ajuste el rango aleatorio o las posiciones mínimas para que permanezcan en la vista de cámara.
Tutorial del sistema de generación
Este proyecto muestra cómo generar entidades 3D de forma dinámica utilizando un componente de generación personalizado en Niantic Studio. Aprenderá a:
- Cargar y colocar automáticamente múltiples instancias de un modelo 3D en la escena.
- Configurar los ajustes de spawn como entityAmount y spawnSpeed.
- Utilizar máquinas de estado ECS simples para coordinar la carga de activos y las transiciones de eventos.
Descripción
El Spawning System Sample muestra un componente "spawner" que crea periódicamente nuevas entidades 3D (por ejemplo, vacas). Cada entidad generada recibe un modelo, una animación básica, un colisionador y una posición aleatoria cerca de la cámara. Esta configuración demuestra cómo el Entity Component System (ECS) de Niantic puede gestionar la creación de múltiples objetos y su configuración inicial sobre la marcha.
Estructura del proyecto
A continuación se muestra un breve resumen de las carpetas y archivos clave:
.
├── assets/ // Activos multimedia adicionales (el modelo cow.glb)
├── spawner.ts // Script principal que define el componente Spawner
└── README.md // Este archivo README
Archivos clave
- Define el componente, que controla cuántas entidades desovar, en qué intervalo desovarlas y cómo posicionarlas.
- Utiliza una simple máquina de estados para manejar la fase de "carga" (desove de entidades) y un estado final de "terminado" una vez que todos los objetos han sido creados.
Visión general de las entidades jerárquicas
- Entidad del Sistema de Generación
- Una entidad que tiene el componente adjunto.
- Configura referencias para cuántas entidades desovar () y el retardo entre desovaciones ().
- Entidades Generadas (Vacas)
- Creadas automáticamente durante el estado LOADING del spawner.
- Cada una recibe:
- GltfModel (el modelo de la vaca).
- ScaleAnimation (escala de 0.1 a 1).
- Collider (forma cilíndrica).
- Una posición aleatoria cerca de la cámara activa.
Cómo funciona
- Componente Spawner
- Registrado en . El ECS hace referencia a dos propiedades clave:
- : Número de entidades a generar.
- : Milisegundos entre spawns.
- Registrado en . El ECS hace referencia a dos propiedades clave:
- Máquina de estados
- LOADING (inicial): Itera hasta, creando una nueva entidad a intervalos de.
- Cada entidad engendrada carga un modelo de vaca, adjunta una ScaleAnimation, y establece su Posición y Colisionador.
- Una vez finalizado el bucle, un trigger pasa al estado DONE.
-
- Posicionamiento aleatorio
- Para cada entidad, se elige una coordenada x aleatoria (entre -4 y 4), mientras que la posición z se desplaza detrás de la cámara.
- La coordenada y está ligeramente por encima del suelo.
-
- Estado HECHO
- Una vez que todas las entidades han aparecido, "¡todo hecho!". Puede utilizar este estado para ejecutar lógica adicional, como volver a activar los spawns o alternar elementos de la interfaz de usuario.
Primeros pasos
- Clona o importa este proyecto
- Abre Niantic Lightship Studio e importa o clona este proyecto de ejemplo en tu espacio de trabajo.
- Asigna el componente Spawner
- En la vista de Escena, crea/selecciona una entidad y añade el componente desde el panel de Scripts de tu proyecto.
- Configure en el Inspector
- Utiliza el campo entityAmount para establecer cuantos modelos 3D quieres desovar.
- Ajusta el spawnSpeed (en milisegundos) para controlar la rapidez con la que aparece cada modelo.
- Vista previa
- Pulse Construir o Publicar.
- Observa como las nuevas entidades (vacas) aparecen cerca de tu cámara, una a una, hasta alcanzar el total.
Personalización
- Modelo & Animación
- Cambia el in si quieres un modelo diferente.
- Modifica la animación o elimínala para un modelo estático.
- Forma del colisionador
- Pruebe diferentes tipos (por ejemplo, , ) para experimentar con las colisiones o el comportamiento de la física.
- Spawn Pattern
- Ajusta los desplazamientos aleatorios en para dispersar las entidades de forma diferente.
- Cambia o en tiempo de ejecución para crear experiencias más dinámicas.
- Lógica Adicional
- En el estado HECHO, puedes añadir pasos adicionales (por ejemplo, mostrar una IU de "spawn completo", activar una animación especial o volver a ejecutar el spawner).
Solución de problemas
- Las entidades no aparecen
- Asegúrese de que se adjunta correctamente a una entidad con el componente.
- Compruebe que el archivo está presente en la carpeta y que la ruta coincide.
- Generación demasiado rápida o lenta
- Ajuste el valor en el Inspector para satisfacer sus necesidades.
- Colliders no funcionan
- Asegúrese de que las nuevas entidades generadas tienen una configuración válida.
Disfruta de las vacas flotantes y explora cómo generar dinámicamente modelos 3D en tus proyectos de Niantic Studio.