¿Qué estás buscando?
Hero background image
Unity 2019.3 release

Nuevas funciones y actualizaciones para programadores

Conoce las novedades para desarrolladores en Unity 2019.3, incluidas importantes actualizaciones en DOTS (pila de tecnología basada en datos), mejor control de versiones, la opción de configurar el ingreso al modo de juego (Configurable Enter Play Mode), mejoras en la serialización, actualizaciones de física y mucho más.

Novedades

Este es un resumen de las principales actualizaciones en las herramientas para programadores. Para ver todos los detalles, consulta las notas de la versión.

Actualización de DOTS Game Code

Escribe menos código repetido con las nuevas versiones de nuestros paquetes de DOTS. Reemplaza los componentes de creación personalizada por un atributo simple [GenerateAuthoringComponent] y sustituye los largos constructores IJobForEach y IJobForEachWithEntity por el método más simple y mucho más rápido Entities.ForEach(), que ahora usa el compilador Burst y C# Job System.

Para comenzar a escribir código DOTS de la nueva forma, instala el paquete Entities (vista previa) de Package Manager.

Mejoras en la serialización

El nuevo atributo SerializeReference te permite serializar las clases de C# como referencias en lugar de como tipos de valores. Eso significa que puedes tener objetos POCO (objetos C# antiguos) que hagan referencia unos a otros, lo cual simplifica el código para expresar y administrar estructuras de datos complejas, como los gráficos y los árboles.

También ofrece compatibilidad para que los campos puedan contener datos polimórficos. Por ejemplo, una lista del tipo List<IAnimal> puede contener perros (clase Dog : IAnimal{}) y gatos (clase Gato : IAnimal{}).

Los campos marcados para serialización como referencias ahora pueden expresar valores nulos de manera intrínseca. Antes, para serializar un campo nulo siempre había que deserializarlo con el constructor predeterminado de ese tipo.

La serialización de tipos no pertenecientes a Unity ha omitido tradicionalmente el polimorfismo. En la versión Unity 2019.3, la serialización polimórfica te permite mantener las referencias de los objetos que antes no sobrevivían el proceso de serialización y hacer referencia más apropiadamente a la cadena de herencia.

Iteración más rápida con Configurable Enter Play Mode
Iteración más rápida con Configurable Enter Play Mode

Actualmente, cuando ingresas a Play Mode en el Editor, Unity hace dos cosas: reinicia los estados del código (recarga de dominio) y vuelve a cargar la escena. Eso lleva tiempo y, cuando tu proyecto se vuelve más complejo, Unity Editor puede demorar en ingresar a Play Mode (modo de juego). Por eso, presentamos Configurable Enter Play Mode (etapa experimental) en Project Settings > Editor > Enter Play Mode.

Estas opciones te permiten desactivar la recarga de escenas o del dominio en el proceso de Enter Play Mode si no hay cambios en el código. Según los resultados de nuestras pruebas, el cambio en estas configuraciones puede ahorrar entre el 50 y el 90 % del tiempo de iteración, según el proyecto del que se trate.

Consulta Cómo configurar Play Mode en la documentación para ver más detalles sobre cómo modificar tu código correctamente si desactivaste la recarga de dominio.

También puedes acceder a esta función a través de una API y una Callback si quieres restablecer el estado del juego al momento anterior a haber ingresado en Play Mode.

Esta función es, por el momento, experimental. Esperamos conocer tu opinión al respecto en el foro.

Biblioteca PhysX actualizada de v3.4 a v4.1
Biblioteca PhysX actualizada de v3.4 a v4.1

Actualizamos la biblioteca PhysX de v3.4 a v4.1. Esto incluye el nuevo solucionador Temporal Gauss-Seidel, que permite que las uniones sean más resistentes al estiramiento y evita ciertos comportamientos erráticos antes vistos durante la simulación. Para activar el nuevo solucionador, vaya a Project Settings > Physics.

También incluimos el nuevo algoritmo Automatic Box Pruning de fase amplia, que puede calcular los límites del mundo y la cantidad de subdivisiones de forma automática. Esto representa una mejora respecto del algoritmo Multi-Box Pruning existente.

Además, hay un algoritmo de malla de fase media más rápido disponible en las plataformas de escritorio. No requiere que se construyan estructuras de aceleración que consumen muchos recursos (R-Trees), lo cual es útil para el contenido generado en tiempo de ejecución dado que se reduce el tiempo de instanciación de MeshCollider.

Agregamos también una nueva API para permitir la integración demorada de mallas en MeshCollider. Puedes ocultar el proceso de integración de mallas que consume gran cantidad de recursos computacionales detrás de una pantalla de carga o escenas de transición, como una escena de diálogo en un juego de aventuras. La API es segura en hilos, por lo que puedes invocar la función por fuera del hilo principal; por ejemplo, mediante C# Job System, a fin de integrar varias mallas al mismo tiempo.

Para más información, consulta la sección "Migrating from PhysX SDK 3.4 to 4.0" en la PhysX 4.1 SDK Guide (Guía sobre SDK de PhysX 4.1) de NVIDIA.

Mejora del perfilador: Recuento de frames configurable
Mejora del perfilador: Recuento de frames configurable

Antes de la versión 2019.3, al investigar el rendimiento en la ventana Profiler, podías ver los datos de perfiles de 300 frames a la vez. Eso no siempre te daba tiempo suficiente para ver todos los frames que te interesaban realmente.

El recuento de frames configurable te permite extender ese período de captura. En la ventana Preferences, ahora puedes configurar la cantidad de frames (de 300 a 2000) que quieres que se muestren en la ventana Profiler.

Mejora del perfilador: Soporte de perfil profundo en reproductores
Mejora del perfilador: Soporte de perfil profundo en reproductores
Mejora del perfilador: Soporte de pilas de llamadas de asignación administrada en los jugadores
Mejora del perfilador: Soporte de pilas de llamadas de asignación administrada en los jugadores

El seguimiento y análisis de las asignaciones administradas es una función importante de Profiler en Unity.
La asignación administrada continua genera recolección de basura (GC), lo cual interfiere con la buena ejecución del juego por retraso multiframe. Saber cuándo se producen estas asignaciones así como conocer su origen en el código es esencial para desarrollar juegos con Unity.

En la versión 2019.3, introducimos las pilas de llamadas para las asignaciones administradas en los Perfiles de Juego. Esto te permite ver la función de C# de la que proviene la asignación que genera GC durante la creación de Perfiles de Juego.

Esta opción puede activarse mediante el selector Call Stacks.

Mejoras en el control de versiones

Unity 2019.3 también incluye una mejora de nuestra compatibilidad con el control de versiones.

Incluye una cantidad de mejoras en la integración y la UX, y corrige nuestra integración Perforce, como el intento de reconexión automático en caso de que se pierda la conexión Perforce.

Ahora verás una barra de Version Control en la parte superior de la ventana Inspector. Allí podrás hacer operaciones adicionales, tales como Add (agregar), Lock (bloquear), Unlock (desbloquear) y Submit (enviar), entre otras mejoras.

Además, en el Inspector para assets no extraídos, ahora puedes hacer clic para copiar los valores de los campos de Inspector desactivados.

Consulta las notas de la versión para ver más detalles sobre las mejoras y correcciones de la interfaz de usuario (UI).

Addressables
Addressables

Esta versión incluye el nuevo sistema de assets con dirección (es decir, los Addressables), que permite la carga de assets por su "dirección". También agiliza la administración de assets ya que simplifica la creación e implementación de paquetes de contenido. En resumen, Addressables permite que tu equipo administre con gran eficiencia el contenido en vivo complejo.

Netcode
Netcode

El FPS Netcode que se utiliza en DOTS Sample está construido usando DOTS como base, lo cual hace que resulte muy fácil crear un juego en red con una arquitectura similar. Incluye predicción del lado del cliente, servidor acreditado, interpolación y compensación de retardo.

Mira la introducción a FPS NetCode que presentó Tim Johansson en su charla de Unite.

Descarga Unity 2019.3 ahora
Descarga Unity 2019.3 ahora

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