Version: 2019.2
Unity Asset Bundle Browser tool
Social API (API Social)

Reducir el tamaño del archivo de su compilación

Keeping the file size of the built app to a minimum is important, especially for mobile devices or for app stores that impose a size limit. The first step in reducing the size is to determine which Assets contribute most to it, because these Assets are the most likely candidates for optimization. This information is available in the Editor Log just after you have performed the build. Go to the Console window (menu: Window > General > Console), click the small drop-down panel in the top right, and select Open Editor Log.

El Editor Log justo después de una construccción
El Editor Log justo después de una construccción

El registro del editor proporciona un resumen de los assets desglosados por tipo, y luego enumera todos los assets individuales en orden de contribución de tamaño. Normalmente, elementos como Texturas, Sonidos y Animaciones ocupan el mayor espacio de almacenamiento, mientras que los Scripts, Niveles y Shaders suelen tener el menor impacto. Los Encabezados del archivo mencionados en la lista no son assets: en realidad son los datos adicionales que se agregan a los archivos assets “en bruto” para almacenar referencias y configuraciones. Los encabezados normalmente hacen muy poca diferencia en el tamaño del Asset, pero el valor puede ser grande si tiene numerosos Assets grandes en la carpeta de Resources (Recursos).

El Registro del Editor lo ayuda a identificar los Assets que puede desear eliminar u optimizar, pero debe considerar lo siguiente antes de comenzar:

  • Unity vuelve a codificar los Assets importados en sus propios formatos internos, por lo que la elección del tipo de Asset fuente no es relevante. Por ejemplo, si tiene una textura de Photoshop multicapa en el proyecto, se aplana y se comprime antes de construir. Exportar la textura como un archivo .png no hace ninguna diferencia en el tamaño de la construcción, por lo que debe seguir el formato que le resulte más conveniente durante el desarrollo.

  • Unity elimina la mayoría de los assets no utilizados durante la compilación, por lo que no obtiene nada al eliminar manualmente los assets del proyecto. Los únicos assets que no se eliminan son los scripts (que en general son muy pequeños) y los assets en la carpeta de recursos (porque Unity no puede determinar cuáles de ellos son necesarios y cuáles no). Con esto en mente, debe asegurarse de que los únicos assets en la carpeta de recursos sean los que necesita para el juego. Es posible que pueda reemplazar los Assets en la carpeta de Recursos con AssetBundles, esto significa que Unity carga los Assets dinámicamente, reduciendo así el tamaño del reproductor.

Sugerencias para reducir el tamaño de construcción

Texturas

Las texturas suelen ocupar el mayor espacio en la construcción. La primera solución para esto es usar formatos comprimidos de Textura. Consulte la documentación sobre Compresión de textura específica de la plataforma para obtener más información.

Si eso no reduce el tamaño del archivo lo suficiente, intente reducir el tamaño físico (en píxeles) de las imágenes de Textura. Para hacerlo sin modificar el contenido original de la fuente, seleccione la textura en la vista del proyecto, y en la ventana del inspector reduzca el Max Size. Para ver cómo se ve en el juego, acerca un GameObject que usa la textura, luego ajusta el Max Size hasta que comience a verse peor en la vista de escena. Cambiar el tamaño máximo de la textura no afecta tu valor de textura, solo su resolución en el juego.

Cambiar el tamaño máximo de la textura no afecta tu valor de textura, solo su resolución en el juego
Cambiar el tamaño máximo de la textura no afecta tu valor de textura, solo su resolución en el juego

Por defecto, Unity comprime todas las texturas al importar. Para un flujo de trabajo más rápido en el Editor, vaya a Unity < Preferences y desmarque la casilla para Compress Assets on Import. Todas las texturas se comprimen en la compilación, independientemente de esta configuración.

Meshes y Animaciones

Puede comprimir Meshes y clips de animación importados para que ocupen menos espacio en su archivo de juego. Para habilitar la compresión de Mesh, seleccione Mesh, luego, en la ventana del Inspector configure Mesh Compression a Low, Medium o High. La compresión Mesh y animación utiliza la cuantificación, lo que significa que requiere menos espacio, pero la compresión puede introducir algunas imprecisiones. Experimenta con qué nivel de compresión es aceptable para tus modelos.

Tenga en cuenta que la compresión mesh solo produce archivos de datos más pequeños y no utiliza menos memoria en tiempo de ejecución. La reducción de Animaton keyframe produce archivos de datos más pequeños y utiliza menos memoria en tiempo de ejecución; en general, siempre debe tenerlo habilitado. Consulte la documentación de Animation Clips para obtener más información al respecto.

Reducing .NET library size

Unity supports two .NET API compatibility levels.: .NET 4.x and .NET Standard 2.0. The .NET Standard 2.0 restricts you to a smaller subset of the .NET API, which can help keep size down.

Unity Asset Bundle Browser tool
Social API (API Social)