Este repositorio es una plantilla diseñada para agilizar el inicio de nuevos proyectos en Unity. Incluye configuraciones predefinidas, workflows de CI/CD mediante GitHub Actions y buenas prácticas para el desarrollo.
- ✨ Estructura básica del proyecto: Configuraciones iniciales para Unity.
- 🚀 Workflows preconfigurados: Automatización de builds para WebGL y Standalone Windows.
- 🌐 Compatibilidad con GitHub Pages: Despliegue directo de builds WebGL.
- 🔔 Integración con Discord: Notificaciones automáticas sobre el estado de las builds.
- 🛠 .gitignore optimizado: Diseñado para Unity para evitar archivos innecesarios en el control de versiones.
- 🕹️ Despliegue opcional a directamente a Itch.io: Sube automáticamente las builds generadas con WebGL directamente a tu proyecto de Itch.io
- 🖱 Haz clic en el botón "Use this template" en la página principal del repositorio.
- 📝 Asigna un nombre a tu nuevo repositorio y selecciona si quieres que sea público o privado.
- 🚀 Haz clic en "Create repository from template".
- 🚫 No clonar con todas las ramas, porque se van a ejecutar todos los actions.
- La rama default y principal debe llamarse "DESARROLLO"
- Crear a posteriori las ramas de "PRE_PRODUCCION", "PRODUCCION"
En tu terminal, clona el nuevo repositorio:
git clone https://github.com/<tu_usuario>/<tu_repositorio>.git
- 🎮 Abre Unity Hub.
- 📂 Selecciona Add project y navega hasta la carpeta donde clonaste el repositorio.
▶️ Selecciona el proyecto y ábrelo.
- Settings > Actions > General
- Actions permissions > Allow all actions and reusable workflows
- Workflow permissions > Read and write permissions
Si deseas utilizar los workflows de CI/CD:
- ⚙️ Ve a Settings > Secrets and variables > Actions - Secrets en GitHub.
- 🔑 Agrega los siguientes secretos:
UNITY_EMAIL
:Email de acceso a Unity para activación.UNITY_PASSWORD
: Contraseña de acceso a Unity para activación.UNITY_LICENSE
: Licencia de Unity para activación.DISCORD_WEBHOOK_URL
: URL del webhook del canal de texto para notificaciones en Discord.
- También se recomienda(aunque opcional) establecer las variables (Actions - Variables)
UNITY_VERSION
PROJECT_NAME
- Opcionalmente, para la build de WebGL, se puede configurar para que se suba directamente a Itch.io. Para ello:
- Se debe generar y guardar la API Key Generar API Key
- Añadir como secreto
ITCHIO_API_KEY
- Añadir como variable
ITCHIO_CHANNEL
en formato usuario/juego:canal. Por defecto: pax16/test_devops:webgl. Esto subirá el proyecto al canal webgl del juego roguelike, en la cuenta pax16. - Se generará automáticamente la URL pública del juego como: https://usuario.itch.io/juego
Important
Para que el juego se suba, el proyecto ya debe estar creado en la página de Itch.io.
Este workflow genera una build para Windows y la sube como un artefacto descargable.
- 🛠 Ve a la sección Actions en GitHub.
- 📂 Selecciona el flujo ejecutado.
- ⬇️ Descarga el archivo de la build desde los artefactos generados.
Este workflow genera una build de Unity para WebGL y la despliega automáticamente en GitHub Pages.
- 🔗 El enlace estará disponible en:
https://<tu_usuario>.github.io/<tu_repositorio>/$nombre_proyecto
Puedes ejecutar el workflow desde la pestaña Actions en GitHub seleccionando el flujo WebGL Build.
Recibe notificaciones en Discord con información sobre el estado de las builds, incluyendo:
- 📊 Estado: Éxito o fallo.
- ⏱ Tiempo de ejecución.
- 🔗 Enlace directo a la build (en el caso de WebGL).
Configura automáticamente revisores para los Pull Requests abiertos en el repositorio. Esto asegura que cada cambio propuesto sea evaluado de manera eficiente.
Este workflow asigna automáticamente etiquetas relevantes a los Pull Requests según su contenido. Por ejemplo: bugfix, enhancement, etc.
Important
Los labels deben estar creados en la pestaña de Issues.
Labels: documentation, feature, bugfix, enhancement, release
Las etiquetas se aplican automáticamente si las ramas siguen el formato feature/
, bugfix/
, etc.
El repositorio incluye un archivo predefinido para estandarizar las descripciones de los Pull Requests y facilitar la comunicación entre los desarrolladores.
Automatiza la creación de notas de lanzamiento al generar un borrador con todos los cambios incluidos desde la última versión publicada. Esto agiliza el proceso de documentación de nuevas versiones.
.github/ # Configuraciones de workflows de GitHub Actions
.github/workflows # Configuraciones de workflows de GitHub Actions
🗺️ Pasos
- Crea una rama con prefijos como
feature/
,bugfix/
, etc. Ejemplo:feature/add-controller
(De modo que las ramas se autoetiqueten con labeler). - Haz commits descriptivos:
Add player controller with new input system
. - Mantén tu rama actualizada con DESARROLLO.
- Abre una PR con detalles claros y enfocado en un solo cambio.
- Responde a los comentarios de los revisores, dado el caso.
- La PR se fusionará tras pasar verificaciones (no impiden el merge). 🚀
Este proyecto utiliza la licencia MIT. Consulta el archivo LICENSE para más detalles.
¡🌟 Las contribuciones son bienvenidas! Si tienes sugerencias o mejoras, crea un Issue o un Pull Request. 🛠
Plantilla creada por pax16gamedev.
Important
No olvidar que para funcione GH Pages el repositorio debe ser público.
Unable to parse Build/Roguelike.framework.js.br! This can happen if build compression was enabled but web server hosting the content was misconfigured to not serve the file with HTTP Response Header "Content-Encoding: br" present. Check browser Console and Devtools Network tab to debug.
Esta es la solución más sencilla si no puedes configurar los encabezados HTTP en el servidor (como ocurre con GitHub Pages).
- Abre tu proyecto de Unity.
- Ve a File > Build Settings > Player Settings.
- En la sección Publishing Settings, busca la opción Compression Format.
- Selecciona Disabled en lugar de Brotli o Gzip.
- Vuelve a generar la build y sube los nuevos archivos a GitHub Pages.
Unity puede manejar la descompresión de los archivos si activas la opción de "Decompression Fallback". Esto requiere un pequeño ajuste en Unity:
- Abre File > Build Settings > Player Settings.
- En Publishing Settings, habilita la opción Decompression Fallback.
- Genera nuevamente la build.
- Sube los nuevos archivos a GitHub Pages.
- Esto permite que Unity descargue los archivos comprimidos y los descomprima directamente en el navegador, eliminando la dependencia del encabezado Content-Encoding.