Buscar información sobre el rendimiento y prácticas recomendadas
Buscar información sobre el rendimiento y prácticas recomendadas, que hacemos con esto, pues parece que Visual Studio 2019 presenta tiene un módulo llamado Unity Analyzers.
Un analizador que funciona detectando un patrón de código y ofrece reemplazarlo con un patrón más recomendado.
Unity Analyzers es una colección de diagnósticos de código específicos de Unity y correcciones de código que son de código abierto y están disponibles en GitHub.
Los analizadores pueden proporcionarte una mejor comprensión de los diagnósticos específicos de Unity o simplemente ayudar a tu proyecto eliminando los diagnósticos generales de CTM que no se aplican a los proyectos de Unity.
Un ejemplo podría ser una instrucción condicional simple en la que debe comprobar si GameObject tiene una etiqueta específica para aplicarle un comportamiento determinado.
Código:
if(collision.gameObject.tag == "enemy")
{
// Logic being applied to enemy GO
}
El analizador sería capaz de analizar su código, detectará el patrón y ofrecerá utilizar el método más optimizado en su lugar. En este caso, el analizador sugeriría el método CompareTag que es más eficaz.
Código:
if(collision.gameObjecpareTag("enemy"))
{
// Logic being applied to enemy GO
}
Aunque el ejemplo anterior representa un ajuste de optimización menor sin un impacto significativo en un único script asociado a un solo GameObject, esto puede ser diferente para un proyecto a gran escala con miles de GameObject con el script adjunto.
Es la suma de todas las partes al examinar la optimización del rendimiento y los analizadores pueden facilitarle la identificación y la mejora del rendimiento simplemente reduciendo la sobrecarga innecesaria optimizando la sintaxis del código.
Cómo funciona la previsualización de la ejecución
La simulación te permite obtener una vista previa de la ejecución de una escena en el modo de edición para admitir la iteración rápida y proporcionar una comprensión instantánea de cómo los servidores proxy flexibles que representan objetos del mundo real podrían comportarse en el mundo real.
En el proceso de vista previa de ejecución, Simulación copia los Game Objects de la escena activa en una escena de vista previa denominada escena de contenido, y establece la marca runInEditMode en cada MonoBehaviour de la escena de contenido que opta por ejecutarse.
Consulta la documentación de Unity MARS para obtener más información sobre cómo escribir MonoBehaviours compatibles con la vista previa de la escena de Simulación.
Con la vista simulación, puedes interactuar con esta vista previa de ejecución de escena de forma aislada de tus escenas de Unity abiertas.
La vista simulación es una vista de escena personalizada que muestra la escena de contenido renderizada sobre la escena del entorno (la siguiente sección profundiza más en la escena del entorno), ya sea desde una perspectiva en tercera persona o desde la perspectiva de la cámara.
En Unity MARS, el comportamiento predeterminado de una vista previa de simulación es ejecutarse en modo instantáneo.
En este modo, todo el proceso de ejecución ocurre sobre una sola trama, en la cual Unity MARS intenta hacer juego los proxies contra todos los datos a la vez.
Aunque este comportamiento no es realista, tiene la ventaja de proporcionar comentarios inmediatos a medida que defines proxies y sus condiciones.
También puede iniciar y detener manualmente una vista previa de simulación en modo continuo.
Este modo es más análogo al modo de reproducción, ya que los comportamientos de la escena de contenido se ejecutan fotograma a fotograma hasta que se detiene la vista previa.
La interacción y el comportamiento de la aplicación en la vista previa continua son limitados, ya que algunos sistemas Unity, como la física y la entrada, solo funcionan en el modo de reproducción.
La vista previa continua es útil para ver cómo responde la aplicación a los datos que cambian con el tiempo y, al mismo tiempo, poder realizar revisiones rápidamente en la escena.
El sistema de simulación realiza un seguimiento del estado de la escena de contenido en relación con la escena activa, manteniéndola actualizada a medida que realiza cambios.
Si realizas alguna modificación de propiedad en un objeto que tiene una copia en ejecución en la escena de contenido, simulación retoma ese cambio e indica que está fuera de sincronización, lo que significa que los últimos cambios no se aplicarán a la vista previa hasta que se vuelva a sincronizar.
En el proceso de resincronización, simulación destruye los objetos de contenido, los reemplaza por nuevas copias de la escena activa y, a continuación, empieza a ejecutar las nuevas copias.
Simulación tiene una opción para volver a sincronizar automáticamente la vista previa, por lo que puede iterar en los servidores proxy y ver instantáneamente los cambios reflejados en la vista de simulación.
Esto es especialmente potente en combinación con las características de creación visual de Unity MARS, que funcionan no sólo en la vista de escena estándar, sino también en la vista de simulación.
Puede cambiar las condiciones de proxy en el contexto del entorno y ver al instante cómo el ajuste de los parámetros de condición cambia el resultado.
Para escenas grandes y complejas que serían costosas de copiar, se recomienda deshabilitar la opción de sincronización automática y, en su lugar, volver a sincronizar manualmente cuando sea necesario.
https://youtu.be/6LcEz0CuUyk
Tipos de datos para simulaciones de realidad aumentada
Tipos de datos para simulaciones de realidad aumentada (AR).
La construcción de un entorno es fundamental para la herramienta Simulation. Un entorno es un conjunto de objetos independiente del contenido de la aplicación que se ejecuta en Simulation.
Hablando de forma práctica, el entorno es una escena con su propia física aislada e iluminación que se representa debajo del contenido de la aplicación, tanto en la vista de simulación como en la vista de juego en el modo de juego.
Esta separación existe para que las pruebas en el Editor puedan comportarse lo más ajustado posible a las pruebas en un dispositivo de realidad aumentada con el entorno actuando como el mundo real en el editor.
Los proveedores de datos son el vínculo clave entre el entorno y el contenido. Al igual que otros tipos de proveedores de datos de realidad aumentada, los proveedores de Simulation existen junto con el contenido de la aplicación, pero también tienen acceso a la información del entorno.
Para trabajar con la previsualización de ejecución, estos proveedores deben trabajar tanto en el modo de reproducción como en el modo de edición.
Hay varias formas en que los proveedores de Simulation pueden utilizar la información del entorno para proporcionar datos, pero hay tres categorías principales de orígenes de datos con las que funciona Simulation: sintético, grabado y en vivo. En los siguientes mensajes abordaremos los distintos tipos de datos que pueden trabajar con la herramienta Simulation.
Los datos sintéticos en las simulaciones
Los datos sintéticos en las simulaciones se crean artificialmente, en lugar de generarse a partir de eventos del mundo real. Estos datos proceden de un prefabricado con el que se crea una instancia en la escena del entorno.
Unity MARS proporciona un conjunto de prefabricados de entorno predeterminados que incluye habitaciones, edificios y espacios al aire libre. También puede crear sus propios entornos simulados.
Simulation viene ahora con capacidad de realidad aumentada sintética para el seguimiento de movimiento, geolocalización, búsqueda de planos, detección de nubes de puntos, detección de marcadores de imagen y estimación de luz, con más por venir.
La mayoría de estos datos se proporcionan instantáneamente a partir de objetos sintéticos dentro del entorno prefabricado.
La simulación también puede crear datos para el seguimiento de movimiento, la detección de nubes de puntos y la búsqueda de planos a través de un proceso de detección de datos simulado.
La detección simulada proporciona datos dinámicamente basados en el contenido del prefabricado del entorno en el mundo real real simulado y el estado de la cámara principal en la escena de contenido de Simulation el dispositivo simulado.
Para emular el descubrimiento de datos en dispositivos móviles, solo detectamos datos cuando la cámara se mueve y solo utilizamos partes del entorno dentro del frustum de la cámara para añadir a nuestra comprensión simulada del mundo.
También creamos planos que crecen en "chunks", como lo hacen en dispositivos móviles, pero estos planos están limitados a mirar hacia arriba, abajo, izquierda, derecha, adelante o hacia atrás.
https://youtu.be/jaJqSM2JrqA
1 Archivos adjunto(s)
Utilizar la lista de tareas como lista de verificación de seguimiento
Un desafío común al crear los scripts es la necesidad de volver en un momento posterior y repasar el código.
Eso podría ser el resultado de la implementación de fragmentos de código que, finalmente, necesitarán refactorización para un mejor rendimiento más adelante, pero satisface las necesidades actuales a medida que se prueba la mecánica del juego.
Visual Studio tiene una característica útil para realizar un seguimiento de esto denominada "Lista de tareas" que te permite realizar un seguimiento de los comentarios de código que usan tokens como TODO y HACK, o incluso tokens personalizados.
También puedes administrar accesos directos que te llevan directamente a una ubicación predefinida en el código.
Para crear una tarea para más adelante, simplemente agrega el token en el código:
Código:
// TODO: Change the collision detection once new colliders are ready
La ventana "Lista de tareas", a la que puedes acceder desde el menú Ver, le ofrece una visión general de todas las tareas que ha etiquetado y le vincula a esas partes específicas del código con un solo clic.
Agregar un comentario seguido de // TODO: en el código hace que sea fácil etiquetar los elementos de acción que desea realizar un seguimiento en un momento posterior mediante la ventana Lista de tareas como se muestra en lo anterior en el lado derecho.
A medida que crece la lista de elementos de acción del proyecto, incluso puedes configurar tus propios tokens personalizados en la lista de tareas y asignar prioridades y organización para el proceso de refactorización de forma eficaz.
Para personalizar los tokens de la lista de tareas: ve a Herramientas > Opciones.
https://youtu.be/gZzqMOXUkMU
Utilizar fragmentos de código para acelerar el flujo de trabajo
Utilizar fragmentos de código para acelerar el flujo de trabajo.
Los fragmentos de código son pequeños bloques de código reutilizable que se pueden insertar en un archivo de código mediante un comando de menú contextual o una combinación de teclas de acceso rápido.
Normalmente contienen bloques de código de uso común, como bloques try-finally o if-else, pero también puede usarlos para insertar clases o métodos completos.
En resumen, le ofrecen una manera práctica de ahorrar mucho tiempo mediante la creación del código reutilizable para usted.
Para rodear el código con un fragmento de código como un espacio de nombres o una región, presione CTRL + K + S.
Eso te permite aplicar el fragmento de código como se muestra en el siguiente vídeo.
https://youtu.be/yMLmlOIe_jc
Cambia el nombre de todas las variables en unos pocos clics
Un flujo de trabajo común al refactorizar el código es cambiar el nombre de las variables a nombres más descriptivos y precisos. Cambiarlo en un lugar obviamente significa que también tienes que corregir todas las referencias a esa variable.
Sin embargo, Visual Studio ofrece un acceso directo fácil para hacer esto en una operación.
Simplemente resalta el nombre de la variable a la que desea cambiar el nombre y haga clic con el botón derecho (o usa el método abreviado de teclado CTRL + R) y, a continuación, cambia el nombre de la variable. Selecciona los cambios de vista previa para revisar las implicaciones del cambio antes de aplicar.
Puedes usar la misma sugerencia para cambiar las clases de la secuencia de comandos, pero recuerde que tiene que cambiar el nombre del archivo de C- en consecuencia para evitar los errores de compilación.
https://youtu.be/KH0nqTpOVuM
Comenta tu código con un atajo de teclado
Comentar o anular el comentario de bloques de código es otro flujo de trabajo común al refactorizar o depurar el código.
Puede ser una tarea que consume mucho tiempo cuando se hace una línea en el momento.
Visual Studio, sin embargo, le permite comentar bloques enteros de código mediante un comando de método abreviado simple: Ctrl +K+C y Ctrl+K+U para anular su comentario de nuevo.
Si estás en Mac, simplemente usa CMD+K+C para comentar y CMD+K+you para eliminar los comentarios de nuevo.
Ser capaz de comentar bloques enteros puede ser una manera eficiente de suprimir la lógica de juego específica durante los flujos de trabajo de prueba.
https://youtu.be/x4Ex1L2xsBk
Configurar la integración con GitHub
Configurar la integración con GitHub. Mientras Unity Collaborate facilita el almacenamiento, el uso compartido y la sincronización de tu proyecto con otros directamente desde Unity con una interfaz visual fácil de usar, algunos equipos y desarrolladores prefieren usar soluciones de control de código fuente como GitHub.
Trabajar con GitHub para el control de código fuente ahora es mucho más fácil con el complemento Github para Unity.
La extensión es completamente de código abierto y le permite ver el historial de su proyecto, experimentar en ramas, crear una confirmación a partir de sus cambios e insertar su código en GitHub sin salir de Unity.
La autenticación de GitHub está incrustada en Unity, incluido 2FA y con un clic de un botón, puedes inicializar rápidamente el repositorio de tu juego sin tener que usar instrucciones de línea de comandos.
Te permite crear un archivo .gitignore específico de Unity para que no tengas que configurarlo manualmente.
Con Visual Studio 2019 también viene una nueva interfaz que hace que sea aún más fácil trabajar con GitHub directamente en el IDE.
Para activar la nueva interfaz en Visual Studio: vaya a Herramientas > Opciones > Entorno > Características de vista previa > Nueva experiencia de usuario de Git.
https://youtu.be/UhKcFKWHRJo
Unity 2021.1 versión beta ya disponible
Unity empieza el año 2021 con el lanzamiento de Unity 2021.1 Beta, esta versión viene con un paquete de características actualizadas que ya se pueden probar para que Unity vaya puliendo el código.
De lo nuevo que viene, destacan los siguientes puntos:
Visual scripting: Crear lógica de scripting sin codificación.
Gráficos: Sombras de luz puntual activadas para la canalización de renderización universal (URP) y ruedas de sombra estáticas para la canalización de renderización de alta definición (HDRP).
Editor: Mejoras en el rendimiento, incluida la búsqueda rápida y variables globales para la localización.
Scripting:IL2CPP más rápido, compilación incremental de scripts de C, API de tiempo de precisión y características de cobertura de código.
Generador de perfiles: Ahora puede perfilar varios jugadores y servidores desde una sola máquina, además de mejoras en Memory Profiler.
Herramientas para artistas: corte punto a punto de ProBuilder, compatibilidad con Cinemachine para cámaras físicas y mejoras en la línea de tiempo, además de una mayor estabilidad en herramientas cinematográficas y Python para Unity.
Herramientas 2D: característicasde Tilemap UX, flujo de trabajo de Sprite Swap.
Plataformas: Mejoras generales.
Ciclo de vida del paquete: Cambios en la forma en que el equipo se implementa y clasifica nuevas características y paquetes.
Descubre más detalles y características de las actualizaciones en el blog de Unity.
Novedades en el Shader Graph de Unity
Unity Technologies ha publicado un video que describe las nuevas características disponibles en Shader Graph implementadas en la versión 2020.2.
El vídeo muestra los cambios del Nodo maestro a Pila maestra y cómo los usuarios pueden actualizar correctamente a la nueva versión de Shader Graph.
Shader Graph permite a los usuarios crear sombreadores visualmente.
En lugar de escribir código, los usuarios obtienen la capacidad de crear y conectar nodos en un marco de gráficos.
Shader Graph proporciona comentarios instantáneos que reflejan los cambios, y es bastante sencillo para los usuarios que son nuevos en la creación del sombreador, ha comentado el equipo de desarrollo de Unity.
Más información aquí.
https://youtu.be/-QcwEYOHt2I
Colabora de forma remota en tiempo real con Live Share
Colabora de forma remota en tiempo real con Live Share.
Live Share te permite compartir tu instancia de Visual Studio directamente con tu compañero de equipo usando solo un enlace, lo que les permite editar el código y colaborar en tu proyecto en tiempo real.
No se tiene que clonar un repositorio ni configurar primero el entorno para realizar el uso compartido.
Lo único que ambos necesitan tener es Visual Studio instalado y, a continuación, es tan fácil como hacer clic en un botón para crear la sesión de Live Share.
Visual Studio Live Share te permite compartir la sesión de Visual Studio y colaborar con otras personas directamente en el código en tiempo real.
Para empezar, simplemente selecciona compartir en vivo para generar un vínculo a las partes del código que desea compartir con cualquier persona que tenga instalado Visual Studio o Visual Studio Code.
Se crea una sesión de uso compartido entre usted y sus colaboradores, lo que les permite ver el código sin tener que instalar nada excepto para el editor.
Funciona casi al instante.
https://youtu.be/KH0nqTpOVuM?t=2232
Crea código reutilizable fácilmente para Unity Messages
Crea código reutilizable fácilmente para Unity Messages, en ocasiones, recordar la firma de todos los métodos MonoBehaviour es complicado y, aunque la documentación de Unity te tendrá cubierto, Visual Studio proporciona una característica ordenada que te permite buscarlo directamente en el IDE.
Simplemente debes hacer clic en CTRL + Mayúsculas + M, busca la función que quieres implementar y filtra a través del resultado de la búsqueda para encontrar el método.
Selecciona la casilla de verificación y haces clic en aceptar para insertar el código reutilizable para el método directamente en el código listo para su uso.
https://youtu.be/YMksuMJaWJw
Versiones 2020 LTS y 2021.1 Tech Stream
Unity se actualiza por partida doble y entra en las versiones 2020 LTS y 2021.1 Tech Stream.
¿Por qué esta versión doble?
Simplemente para adaptarse a sus necesidades a través de dos variaciones: Tech Stream, las últimas innovaciones tan pronto como se implementan, para una versión bastante adaptada a la prototipado y preproducción.
Y la versión LTS con soporte a largo plazo, con una plataforma estable que se basa en todas las mejoras del año pasado, recomendado para las personas que quieren congelar la versión del motor para su producción.
Aquí, el LTS 2020 incorpora mejoras en todos los niveles, como canalización de renderización universal (URP), Gráfico sombreador, Gráfico VFX, Cinemachine, animación de rigging.
El 2021.1 Tech Stream, por su parte, ofrece secuencias de comandos visuales y mejoras en el URP, la canalización de renderización de alta definición (HDRP) o herramientas 2D.
La versión LTS de Unity prioriza la estabilidad comprobada. Esta versión acumula compilaciones maduras de las características y mejoras realizadas con respecto a las secuencias tecnológicas del año calendario anterior en una sola instalación con dos años de soporte.
Las versiones de lanzamiento te ofrecen un mayor control sobre cómo creas e implementas experiencias 3D en tiempo real, y eso significa más libertad en la forma en crear experiencias imaginativas para tus jugadores y una mayor confianza.
Nuestro papel es potenciar y apoyar su trabajo, para que pueda tener éxito. En 2020, duplicamos nuestro compromiso de ofrecer un entorno creativo de alta calidad que facilite su productividad mientras mejora el rendimiento tanto para flujos de trabajo como para la experiencia de tus jugadores.
Durante los últimos 12 meses, este trabajo ha permitido ofrecer un Editor de Unity más robusto y estable para su base creativa, independientemente de la secuencia de lanzamiento que utilice.
Aumentando la calidad centrándose en dos lanzamientos anuales de Tech Stream en lugar de los tres anteriores, extendiendo el período de estabilización incluso para las características más recientes.
También cambiamos el ciclo de vida del paquete por cómo etiquetamos la preparación de las características individuales para aclarar mejor lo que puede esperar en términos de estabilidad y funcionalidad de los paquetes.
Las entidades representan una revolución en la creación de juegos de alto rendimiento.
Pero debido a su potencial, y debido a que nuestra dedicación a las herramientas de calidad sigue creciendo, nos aseguramos de cumplir con los más altos estándares de calidad y estabilidad.
De esta manera, sabemos que satisfará sus necesidades como creadores de juegos modernos y que las entidades serán accesibles, no sólo funcionales. Para mantenerse actualizado.
Seguimos comprometidos a ofrecer calidad, productividad y rendimiento para juegos y equipos de todas las formas y tamaños.
Vamos a profundizar para ver lo que eso significa en la práctica:
Calidad: Flujos de trabajo estables y mejor experiencia para los jugadores.
Productividad: Iteración eficiente y flujos de trabajo para su equipo.
Rendimiento: Más potencia para crear y ofrecer experiencias de juego de clase mundial sin problemas.
¿Qué se incluye en los lanzamientos?
Los flujos de trabajo optimizados te ayudan a reducir el tiempo que se tarda en llevar tus proyectos del concepto al renderizado final a medida que construyes cualquier cosa, desde el juego 2D más ligero hasta un mundo 3D inmersivo.
https://youtu.be/1L6rig10wiQ