Unity 2020.2

Herramientas para programadores

Mejora tus flujos de trabajo de scripting con Unity 2020.2. Con nuestras herramientas mejoradas para programadores, puedes acelerar las iteraciones y optimizar tus proyectos para que tengan un rendimiento óptimo. 

¿Qué novedades trae la versión 2020.2?

Descubre algunas de las principales mejoras y características nuevas de Unity 2020.2 para programadores. Si quieres conocer todos los detalles, consulta las notas de la versión.

Mejores tiempos de proceso con la compilación determinista

A medida que aumenta la complejidad de un proyecto, los nuevos cambios en el código pueden requerir mayores tiempos de compilación y eso afecta la productividad del equipo. Unity 2020.2 ofrece una opción de compilación «determinista» que se puede utilizar al compilar scripts de C#. Esta opción te permite evitar la recompilación innecesaria de las referencias de definición de ensamblado (.asmdef) si no hay cambios en los metadatos públicos de ensamblado cuando se compilan los scripts para el Editor. Esto es particularmente útil para reducir el tiempo de iteración cuando haces cambios en ensamblados que tienen muchas referencias directas o indirectas.

Más información

Compatibilidad con C# 8

Unity 2020.2 admite todas las características y mejoras más recientes de C# 8, excepto los métodos de interfaz predeterminados. Esto incluye los tipos de referencias que pueden establecerse en NULL, para los cuales el compilador puede mostrar una advertencia cada vez que intentas asignarle un valor NULL a una variable de tipo referencia. La expresión switch con coincidencia de patrón te ofrece una forma más simple de escribir código condicional.

Para obtener una descripción completa de todas las novedades que incluye C# 8, consulta la documentación de Microsoft.

C#_8_support.cs (C#)
public static RGBColor FromRainbow(Rainbow colorBand) =>
    colorBand switch
    {
        Rainbow.Red    => new RGBColor(0xFF, 0x00, 0x00),
        Rainbow.Orange => new RGBColor(0xFF, 0x7F, 0x00),
        Rainbow.Yellow => new RGBColor(0xFF, 0xFF, 0x00),
        Rainbow.Green  => new RGBColor(0x00, 0xFF, 0x00),
        Rainbow.Blue   => new RGBColor(0x00, 0x00, 0xFF),
        Rainbow.Indigo => new RGBColor(0x4B, 0x00, 0x82),
        Rainbow.Violet => new RGBColor(0x94, 0x00, 0xD3),
        _              => throw new ArgumentException(message: "invalid enum value", paramName: nameof(colorBand)),
    };
Consulta la guía de C# 8 de Microsoft

Root Namespace disponible en los ajustes de la definición de ensamblado

Los espacios de nombre en C# proporcionan una forma eficiente de organizar el código y evitar colisiones entre los nombres de clases y otros paquetes o bibliotecas. Ahora, Root Namespace (espacio de nombre raíz) está disponible como un campo nuevo en el inspector asmdef y se utiliza para agregar automáticamente un espacio de nombre cuando se crea un nuevo script en Unity, Visual Studio o Rider.

Recuerda actualizar los paquetes de Visual Studio y Rider a la versión más reciente si deseas usar esta funcionalidad.

Más información
Comparación de los tiempos de conversión de dos proyectos utilizando IL2CPP en forma serial y paralela antes y después de la conversión a subprocesos múltiples. La línea roja es una demostración interna y la naranja es de un proyecto perteneciente a un estudio externo.

Mayor rapidez en la compilación de versiones

Unity 2020.2 incluye importantes mejoras en el tiempo de compilación de versiones. Si haces cambios que no involucran código, por ejemplo, en los materiales, shaders o prefabs, ahora la conversión IL2CPP de los ensamblados .NET a C++ se omitirá completamente al compilar un player. 

En Unity 2020.2, la conversión IL2CPP aprovecha los modernos procesadores multinúcleo y pasa de utilizar un solo proceso a utilizar múltiples, lo cual reduce marcadamente los tiempos generales de compilación de un player en IL2CPP, tal como lo demuestran los datos del proyecto de prueba que aparecen arriba. 

Más información

Uniformidad en Time.deltaTime

Unity 2020.2 corrige la falta de uniformidad en los valores de Time.deltaTime que provocan falta de fluidez en los movimientos de los objetos durante el juego. La interfaz TimeManager se refactorizó de forma tal que los cálculos de tiempo de los frames ahora son más estables, lo que permite que el movimiento de los objetos sea mucho más fluido cuando el juego se ejecuta con una tasa de frames estable. Unity 2020.2 admite estas mejoras de estabilidad en los cálculos de tiempo en iOS, macOS, PS4, Switch, tvOS, UWP, Windows y Xbox One. Las mejoras en Android, Windows/Linux en Vulkan y XR llegarán más adelante. Para ver más detalles, consulta esta entrada del blog.

Más información
Se observó que la optimización general está dada por una velocidad entre 12 y más de 800 veces mayor cuando se procesan entre 100 y 5000 importadores (para ver la mejora general, consulta el gráfico de la derecha).

Mejoras del rendimiento

Unity 2020.2 incluye varias optimizaciones importantes, incluidas aquellas que mejoran los prefabs anidados, lo que acelera enormemente los tiempos de ordenamiento y búsqueda. En los tests realizados, las búsquedas en la función de registro de los importadores programados en el Editor demostraron ser hasta 800 veces más rápidas. Por último, el equipo de optimización también refactorizó Camera.main y redujo el tiempo que toman las consultas, en cientos de milisegundos en algunos proyectos.

Más información

Editor Coroutines y flujos de trabajo más rápidos con Configurable Enter Play Mode

Configurable Enter Play Mode ya no es una función experimental y te permite activar «Domain Reload» (recarga de dominio) o «Scene Reload» (recarga de escena), o ambas acciones a la vez, para ingresar más rápido en Play Mode (modo de juego). Con Editor Coroutines (corrutinas del Editor), que ya salió de vista previa, puedes iniciar la ejecución de los métodos de iteración dentro del Editor, de manera similar a como se manejan las corrutinas dentro de los scripts MonoBehaviour durante el tiempo de ejecución.

Más información

Recorte de código administrado con Unity Linker

Unity Linker realiza un análisis estático para recortar el código administrado. También reconoce diferentes atributos y te permite anotar las dependencias allí donde no es capaz de identificarlas. En Unity 2020.2, esta herramienta recibió actualizaciones de API para ser compatible con Mono IL Linker. A partir de Unity 2020.1, Unity Linker puede detectar algunos patrones de reflexión simples, lo que reduce la necesidad de usar archivos link.xml.

Más información

Actualizaciones de Profiler

Ahora puedes agregar gráficos en la ventana Profiler (medidor de rendimiento) para obtener más datos y contexto de rendimiento para las estadísticas existentes de Profiler o aquellas generadas por los usuarios. Al mismo tiempo, Flow Events (eventos de flujo) puede mostrar las dependencias seriales de la tarea en Profiler Timeline (línea de tiempo de Profiler) a fin de ayudarte a identificar qué tareas de una secuencia de operaciones le toman más tiempo a tu aplicación.

Ahora puedes visualizar las estadísticas de renderizado y Memory Profiler en Players. Puedes ver las estadísticas de Profiler utilizando la API de tiempo de ejecución y leer los valores de las estadísticas de rendimiento para las áreas de Profiler existentes, como memoria, renderizado y otras en Players. Utiliza esos datos para mostrar pantallas heads-up (HUD) de rendimiento mientras ejecutas el proyecto en el dispositivo meta o crea otra herramienta de rendimiento en función de tus propias necesidades.

Más información

Mejoras relacionadas con el analizador Roslyn

El canal de compilación ahora admite los analizadores Roslyn. Este te permite ejecutar analizadores de tu código C# de forma asíncrona en segundo plano dentro de Unity Editor sin interrumpir tu flujo de trabajo de iteración. También puedes ejecutarlos de forma síncrona desde la línea de comandos. 

Los analizadores Roslyn y los archivos de conjuntos de reglas de los proyectos de Unity son herramientas sofisticadas que te ayudan a inspeccionar tu código en cuanto a su estilo, calidad y otros aspectos. Puedes utilizas las bibliotecas existentes del analizador para inspeccionar tu código y escribir tus propios analizadores a fin de promover las convenciones o prácticas recomendadas dentro de tu organización.

Más información

Unity Modo Seguro

Unity Modo Seguro mejora la forma en que Unity se comporta al abrir un proyecto que tiene errores de compilación del script. Si los errores de compilación se detectan al iniciarse el Editor, se te solicitará ingresar al Modo Seguro. Este modo te presenta un entorno diseñado para resolver los errores, a fin de que tu proyecto pueda volver rápidamente a un estado funcional, sin tener que esperar importaciones innecesarias de los assets de tu proyecto. Esta función simplificará y acelerará el proceso de actualización de un proyecto a una versión nueva de Unity. Además, ayudará a que los equipos que trabajan con proyectos grandes puedan reducir la cantidad de casos en que la carpeta de la biblioteca contiene artefactos de importación incorrectos.

Más información

Descarga Unity 2020.2 ahora

Obtén acceso a todas las características mencionadas y mucho más hoy mismo.

Usamos cookies para brindarte la mejor experiencia en nuestro sitio web. Visita nuestra página de política de cookies si deseas más información.

Listo