¿Qué estás buscando?
Hero background image

Creación de scripts en Unity para programadores expertos

¿Tienes experiencia en C++ y estás empezando a utilizar Unity?

Unity es compatible con C#, un lenguaje estándar del sector que tiene algunas similitudes con Java o C++

C# es más fácil de aprender que C++. Además, es un "lenguaje administrado", lo que significa que administra la memoria automáticamente por ti: asigna y cancela la asignación de memoria, cubre las fugas de memoria, etc.

En general, es preferible utilizar C# en lugar de C++ si quieres crear un juego primero y lidiar con los aspectos más avanzados de la programación después.

GameObjects y componentes en Unity
GameObjects y componentes en Unity
Componentes de creación de scripts en Unity
Demostración de Unity Megacity creada en DOTS
Beneficios del diseño orientado a los datos con DOTS

El concepto tradicional de GameObject-componente aún funciona bien porque es fácil de entender para los programadores y para quienes no tienen experiencia de programación, además de que es fácil crear interfaces de usuario intuitivas para este concepto. Si agregas un componente Rigidbody a un GameObject, este comenzará a caer; o, si agregas un componente de luz a un GameObject, este comenzará a emitir luz. Y así sucesivamente.

Sin embargo, el sistema de componentes se escribió en un marco de trabajo orientado a los objetos y genera ciertos desafíos para los desarrolladores en cuanto a la administración de la memoria y la caché en el hardware que evoluciona constantemente.

Los componentes y los GameObjects son objetos "con una gran cantidad de C++". Todos los GameObjects tienen un nombre. Sus componentes son envoltorios de C# colocados sobre componentes de C++. Esto hace que sean fáciles de utilizar, pero puede afectar al rendimiento, pues pueden terminar almacenados de una manera no estructurada. Ese objeto de C# puede estar en cualquier parte de la memoria. El objeto de C++ también puede estar en cualquier parte de la memoria. Los elementos no se agrupan en bloques contiguos de la memoria. Cada vez que se carga un elemento en el CPU para su procesamiento, todos los elementos que lo componen se deben obtener desde ubicaciones diferentes. Esto se puede convertir en un proceso lento e ineficaz y, por lo tanto, puede requerir muchas soluciones alternativas de optimización.

Para enfrentar estos problemas de rendimiento, estamos rediseñando la base de Unity con la pila de tecnología basada en datos (o DOTS) multiproceso (actualmente en la versión de vista previa).

DOTS hace posible que tu juego utilice plenamente los procesadores multinúcleo más nuevos de forma eficiente. Esta solución está compuesta por:

En DOTS, el ECS es el nuevo sistema de componentes. En este nuevo sistema, podrás utilizar una entidad para hacer cualquier cosa que se hace normalmente con un GameObject en el método tradicional orientado a los objetos. Los componentes se siguen llamando de la misma manera. La diferencia más importante es el formato de los datos. Puedes leer más sobre esto en la publicación del blog “En PUNTOS: Sistema de componentes de entidad”.

Demostración de Unity Megacity creada en DOTS
Aprovecha al máximo el hardware moderno

Además de que es un mejor enfoque para la programación de juegos por razones relacionadas con el diseño, el uso de ECS te pone en una posición ideal para aprovechar C# Job System y el compilador Burst de Unity, lo que te permite aprovechar al máximo las capacidades del hardware moderno.

Los sistemas multiproceso de DOTS te permiten crear juegos que se pueden ejecutar en una gran variedad de hardware y desarrollar mundos de juego más completos, con más elementos y simulaciones más complejas. Por su parte, el código de alto rendimiento contribuye para obtener el mejor control de temperatura y aumentar la vida útil de la batería en los dispositivos móviles de los jugadores. Al hacer la transición del diseño orientado a los objetos al diseño orientado a los datos, puedes reutilizar tu código, y otras personas pueden entenderlo y trabajar en él, con mayor facilidad.

Debido a que algunas partes de la tecnología de DOTS están en la versión de vista previa, se recomienda que los desarrolladores la utilicen para resolver un desafío de rendimiento específico en sus proyectos, en lugar de utilizarla para crear proyectos completos. Consulte la sección "Más recursos" en la parte inferior de esta página, donde encontrarás los enlaces para los recursos clave sobre DOTS.

Unity Profiler: una herramienta para la optimización del rendimiento
Depuración en Unity

Las modificaciones y la depuración son eficientes en Unity porque los desarrolladores pueden ver todas las variables mientras juegan, lo que les permite cambiar cualquier cosa sobre la marcha y sin escribir ni una sola línea de código. Puedes pausar el juego en cualquier momento o revisar el código un enunciado a la vez.

Estos son algunos recursos fabulosos para obtener más información sobre la optimización en Unity:

El Profiler

El Profile Analyzer

El Memory Profiler

Comprender la optimización en Unity

Optimización del rendimiento gráfico

Prácticas recomendadas generales (incluye una gran variedad de consejos para optimizar el sistema de la interfaz de usuario (UI) de Unity)

Backends de creación de scripts en Unity

.NETO: .NET: Unity utilizó una implementación del tiempo de ejecución estándar Mono para la creación de scripts que es compatible con C# de forma nativa. Unity actualmente incluye Visual Studio para Mac en lugar de MonoDevelop-Unity en macOS. En Windows, Unity incluye Visual Studio.

El tiempo de ejecución para la creación de scripts .NET 4.6 de Unity es compatible con muchas de las nuevas características emocionantes de C# y con las funciones de depuración disponibles en C# 6.0 y versiones posteriores. Esto también ofrece una excelente experiencia de IDE en C# para acompañar a las nuevas características de C#.

IL2CPP: IL2CPP: este es un backend de creación de scripts desarrollado por Unity, y lo puedes utilizar como alternativa de Mono al crear proyectos para algunas plataformas. Si eliges crear un proyecto con IL2CPP, Unity convierte el código IL de los scripts y los ensamblados en código de C++, y después crea un archivo binario nativo (por ejemplo, .exe, .apk o .xap) para la plataforma que elijas.

Ten en cuenta que IL2CPP es el único backend de creación de scripts disponible al crear proyectos para iOS y WebGL.

Personaliza Unity al extender el Editor

Más recursos

Convierte tu juego a DOTS
Convierte tu juego a DOTS
Demostración de Megacity creada en DOTS
Documentación de DOTS
Herramientas y servicios incluidos en la plataforma de desarrollo de Unity
Descripción general de la plataforma 3D en tiempo real de Unity