Red de conocimiento informático - Problemas con los teléfonos móviles - ¿En qué idioma se desarrolla unity3d?

¿En qué idioma se desarrolla unity3d?

Pregunta interesante.

Mira el resumen del webmaster.

Por supuesto, el resultado depende de ti.

En primer lugar, aquí hay un extracto de un artículo de InfoQ

En Unity3D, cuál es mejor, C# o JS ?

La pregunta más común es: ¿Cuál se ejecuta más eficientemente, los juegos U3D escritos en JS o los juegos U3D escritos en C#?

La respuesta más común es: C#, porque js es dinámico: C#, porque js es dinámico. Ciertamente no es tan bueno como un lenguaje compilado.

La segunda pregunta más común es: ¿Cuál es más rápido y mejor para mí, js o C#?

La segunda respuesta más común es: js es adecuado para el desarrollo personal, ágil y rápido; c# es adecuado para el desarrollo empresarial, estandarizado y estricto.

Organicemos las diferencias entre C# y UnityScript de la misma manera que discutimos las diferencias entre javascript y C#, es decir, en orden de esencia primero y rendimiento después. Además, respondamos las dos preguntas anteriores.

Similitudes esenciales

Como se mencionó al principio, UnityScript y C# son lenguajes de primer nivel. También necesitan pasar por la transición del código fuente al lenguaje intermedio CIL y, finalmente, compilar al proceso del idioma nativo. Entonces, en esencia, lo que terminas ejecutando es lenguaje de máquina nativo compilado a partir de CIL. Pero C# es realmente más rápido, entonces, ¿cuál es el problema?

Una posible (pero no la única) respuesta es que UnityScript y C# generan el lenguaje intermedio CIL de manera diferente.

Esto es muy simple, al igual que el problema var mencionado anteriormente. Si usa Object para manejar vars, inevitablemente necesitará realizar muchas operaciones de boxeo y unboxing, lo que tendrá un gran impacto en la eficiencia.

Entonces, sí, C# es más rápido, pero la razón es que UnityScript implica operaciones frecuentes de boxing y unboxing, lo que a su vez genera un código CIL diferente al de C#, no porque UnityScript sea un lenguaje dinámico que no requiere compilación.

La realidad es muy simple

¿Debo usar C# o UnityScript para el desarrollo? Si no quiere pensar en la eficiencia, solo quiere pensar en cómo se siente al desarrollar, entonces le diré mi opinión: aprecie su tiempo y manténgase alejado de UnityScript.

En primer lugar, debemos aclarar algunos hechos:

UnityScript es un lenguaje de terceros, concretamente Boo, que nació en la plataforma .NET. Boo, es un lenguaje de terceros para la plataforma. La diferencia entre el llamado lenguaje de terceros y C# es si eres una persona real o si tu padre es Lao Wang, el vecino. La diferencia puede ser completa y tridimensional. El soporte de la comunidad, el mantenimiento del código e incluso la calidad del código CIL compilado pueden variar ampliamente. Antes de elegir UnityScript, pregúntate si has oído hablar de Boo. No olvide la relación de UnityScript con Boo.

UnityScript y JavaScript no tienen nada que ver entre sí excepto que se parecen. En JavaScript eres como un pez en el agua, pero en UnityScript un poco de descuido puede enterrar peligros ocultos, y algunos peligros ocultos pueden estar ocultos en lo más profundo. Y UnityScript también es un lenguaje estático que también debe compilarse, por lo que no sé por qué sería rápido para cualquiera elegirlo como lenguaje de desarrollo.

Soporte de complementos. Parece que la mayoría de los complementos están escritos en C#.

Bueno, si no te interesan los tres puntos anteriores, entonces no está mal que eches un vistazo a la actitud oficial.

El equipo oficial de la U3D elaboró ​​un gráfico de proporción de uso del idioma basado en el análisis de datos.

A partir de Unity 5.0, se suspenderá la compatibilidad con la documentación para el lenguaje Bu ya que el uso del lenguaje es esencialmente insignificante. Además, la opción para crear un guión de tela desde el menú "Crear guión de tela" desaparecerá. La actitud del equipo de U3D hacia las secuencias de comandos en tela es un buen indicador del futuro de UnityScript, que está estrechamente relacionado con las secuencias de comandos en tela.

Al mismo tiempo, el equipo de U3D está trasladando su soporte a C#, lo que significa que la documentación, los ejemplos y el soporte de la comunidad estarán centrados en C#, porque C# tiene la mejor documentación y los ejemplos de código más detallados. y la comunidad El mayor número de participantes en C# en .