web-dev-qa-db-fra.com

Quel langage est utilisé pour développer avec Unity

Quel langage doit-on utiliser lors de la programmation avec Unity? Ou s'agit-il d'une API pour de nombreuses langues?

J'ai lu les documents et je suppose que j'ai manqué le point sur la langue utilisée.

Il dit qu'il a un déploiement iOS, cela permettrait-il toujours au programmeur de coder dans l'objectif C?

Unity est-il un sdk qui peut être utilisé pour de nombreuses plates-formes ou comment fonctionne-t-il? Il mentionne déployer le même code sur plusieurs plateformes.

55
jarryd

Pour autant que je sache, vous pouvez utiliser c #.

Vous pouvez également utiliser le langage obscur "Boo". ( Trouvé sur https://boo-language.github.io/ )

Dans le passé (avant environ 2012), il était possible d'utiliser une étrange variante de Java mais qui est maintenant obsolète et ne fonctionne pas.

Notez que Unity s'appuie sur Android/iOS, et de nombreuses autres plates-formes. Le fait que la programmation iOS utilise objective-c ou Swift, est complètement hors de propos au niveau Unity3D. Unity est programmé en utilisant c #.

30
Andreas Wong

Tout le développement se fait en utilisant votre choix de C #, Boo ou un dialecte de JavaScript.

  • C # n'a pas besoin d'explication :)
  • Boo est un langage CLI avec une syntaxe très similaire à Python; il est, cependant, typé statiquement à quelques autres différences. Ce n'est pas "vraiment" Python; il semble juste similaire.
  • La version de JavaScript utilisée par Unity est également un langage CLI et est compilée. Les nouveaux arrivants supposent souvent que JS n'est pas aussi bon que les trois autres, mais il est compilé et tout aussi rapide et fonctionnel.

La plupart des exemples de code de la documentation sont en JavaScript; si vous fouillez les forums officiels et le wiki, vous verrez un mélange assez uniforme de C # et de Javascript. Très peu de gens semblent utiliser Boo, mais c'est tout aussi bon; choisissez la langue que vous connaissez déjà ou que vous apprenez le mieux.

Unity prend votre code C #/JS/Boo et le compile pour qu'il s'exécute sur iOS, Android, PC, Mac, XBox, PS3, Wii ou plugin Web. Selon la plate-forme qui pourrait finir par être Objective C ou autre chose, mais c'est complètement transparent pour vous. Il n'y a vraiment aucun avantage à connaître l'objectif C; vous ne pouvez pas programmer dedans.


Mise à jour 2019/31/01

À partir d'Unity 2017.2, "UnityScript" (la version de Unity de JavaScript, mais pas identique à) a fait son premier pas vers la désapprobation complète en supprimant l'option d'ajouter un fichier "JavaScript" de l'interface utilisateur. Si les fichiers JS pouvaient encore être utilisés, leur prise en charge sera complètement supprimée dans les versions ultérieures.

Cela signifie également que Boo deviendra inutilisable car son compilateur est en fait construit comme une couche au-dessus d'UnityScript. Et sera donc également supprimé.

Cela signifie qu'à l'avenir, seul C # aura un support natif.

unity a publié un article complet sur la dépréciation d'UnityScript et de Boo en août 2017.

99
Cody Hatch

Lorsque vous construisez pour iPhone dans Unity, il fait une compilation Ahead of Time (AOT) de votre assemblage mono (écrit en C # ou JavaScript) en code natif ARM.

L'outil de création crée également un projet de stub xcode et des références qui ont compilé lib. Vous pouvez ajouter du code Objective C à ce projet xcode si vous voulez faire des choses natives qui ne sont pas encore exposées dans l'environnement Unity (par exemple, accéder à la boussole et/ou au gyroscope).

6
Calvin

Unity3d prend en charge C #, Boo et JavaScript. Le cadre traduit cela dans son format intermédiaire et plus tard sur la plate-forme souhaitée (IOS/Android/Linux/Windows)

Gardez à l'esprit que les scripts C # sont compilés en premier, suivis de JS et Boo. Par conséquent, si vous voulez qu'un script C # interagisse avec un JS, vous devrez conserver le JS dans le dossier des actifs standard.

5
user1438327

Unity prend en charge:
1. UnityScript (est connu sous le nom de Javascript mais inclut plus de fonctionnalités pour le moteur de jeu Unity. Je pense que cela pourrait être très facile à apprendre)
2. Boo (aucune expérience)
3. C # (Je préfère cela car il est utile d'apprendre et vous pourrez également l'utiliser en dehors de l'unité. Je pense aussi qu'il est facile de s'y habituer)

3
alexo1001

Certaines des principales différences entre la syntaxe de script C # et Javascript dans Unity.

http://unity3d.com/learn/tutorials/modules/beginner/scripting/c-sharp-vs-javascript-syntax

mais gardez à l'esprit que C # est le meilleur à développer dans l'unité

2
malbarmawi

Il utilise c # et unityscript (javascript), qui est pris en charge par le code source en c ++, et la prise en charge des plugins c ++ (le code source et les plugins nécessitent pro).

La référence du script Unity3d est vraiment facile à comprendre/utiliser si nécessaire, probablement le plus simple des moteurs comme cryengine, udk, etc.

J'espère que cela t'aides.

1
user3210251

je me souviens de cela en lisant certains articles sur les performances dans l'unité à partir d'Internet, ce qui empêche les utilisateurs de javascript de l'utiliser en unité sur des problèmes vraiment massifs d'utilisation de javascript dans l'unité au lieu de C #, il dit que C # est presque 4x plus rapide que javascript!
J'apprécie vraiment cet article car il m'a sauvé le cul quand j'étais sur le point de commencer à jouer, je ne veux pas dire que javascript est mauvais pour les développeurs d'unité, c'est bien mais mon conseil pourrait être que si vous aimez utiliser javascript , vous devriez l'utiliser pour de petits jeux simples PAS POUR LES GRANDS PROJETS car cela peut vraiment être un putain de problème!

1
a_m_dev

Vous pouvez utiliser C #, Javascript, Boo.

À moins que les exigences informatiques de la fonction que vous écrivez n'entraînent une charge importante sur le processeur, Javascript offre de bonnes performances dans la plupart des cas.

1
user3112151

On peut utiliser l'un des trois langages de script suivants:

  1. Javascript
  2. C #
  3. Huer

Mais mon choix personnel est C # car je le trouve plus rapide que les deux autres.

1
Mayank Gupta