Welche Sprache wird zum Entwickeln mit Unity verwendet?

72

Welche Sprache muss man beim Programmieren mit Unity verwenden? Oder ist es eine API für viele Sprachen?

Ich habe die Dokumente gelesen und ich glaube, ich habe den Punkt in der verwendeten Sprache verpasst.

Es heißt, es habe eine iOS-Bereitstellung. Würde dies dem Programmierer dennoch erlauben, in Ziel C zu codieren?

Ist Unity ein SDK, das für viele Plattformen verwendet werden kann, oder wie funktioniert es? Es wird erwähnt, dass derselbe Code auf mehreren Plattformen bereitgestellt wird.

System
quelle

Antworten:

42

Soweit ich weiß, können Sie mit c # gehen.

Sie können auch die obskure Sprache "Boo" verwenden. ( Gefunden unter https://boo-language.github.io/ )

In der Vergangenheit (vor ungefähr 2012) war es möglich, eine seltsame Variante von Java zu verwenden, aber das ist jetzt veraltet und funktioniert nicht.

Beachten Sie, dass Unity auf Android / iOS und vielen anderen Plattformen erstellt werden kann. Die Tatsache, dass die iOS-Programmierung Objective-C oder Swift verwendet, ist auf Unity3D-Ebene völlig irrelevant. Die Einheit wird mit c # programmiert.

Andreas Wong
quelle
Also C #, das in eine iOS-Bereitstellung konvertiert wird. Aber die Entwicklung erfolgt mit C # und nicht mit obj c für das iPhone
System
Für Android: Auch in der kostenlosen Version! Es ist sehr leicht. Schreiben Sie einfach in C # oder JavaScript und klicken Sie auf Build, wählen Sie Android und Sie sind fertig. Einheit ist großartig, um für verschiedene Ziele zu bauen.
Sadik
3
Ist diese Antwort noch aktuell?
temporärer_Benutzername
Ich bin kein Experte, aber es scheint, dass Java keine von Unity unterstützte Sprache ist
maxkoryukov
119

Die gesamte Entwicklung erfolgt mit C #, Boo oder einem JavaScript-Dialekt.

  • C # braucht keine Erklärung :)
  • Boo ist eine CLI-Sprache mit einer sehr ähnlichen Syntax wie Python. Es ist jedoch statisch typisiert und weist einige andere Unterschiede auf. Es ist nicht "wirklich" Python; es sieht einfach ähnlich aus.
  • Die von Unity verwendete JavaScript-Version ist ebenfalls eine CLI-Sprache und wird kompiliert. Neulinge gehen oft davon aus, dass JS nicht so gut ist wie die anderen drei, aber kompiliert und genauso schnell und funktional.

Der größte Teil des Beispielcodes in der Dokumentation ist in JavaScript. Wenn Sie in den offiziellen Foren und im Wiki stöbern, sehen Sie eine ziemlich gleichmäßige Mischung aus C # und Javascript. Sehr wenige Leute scheinen Boo zu benutzen, aber es ist genauso gut; Wählen Sie die Sprache aus, die Sie bereits kennen oder die Sie am glücklichsten lernen.

Unity verwendet Ihren C # / JS / Boo-Code und kompiliert ihn für iOS, Android, PC, Mac, XBox, PS3, Wii oder Web-Plugin. Abhängig von der Plattform, die möglicherweise Ziel C oder etwas anderes ist, ist dies für Sie jedoch völlig transparent. Es hat wirklich keinen Vorteil, Ziel C zu kennen. Sie können nicht darin programmieren.


Update 31.01.2019

Ab Unity 2017.2 hat "UnityScript" (Unitys Version von JavaScript, aber nicht identisch mit) seinen ersten Schritt in Richtung völliger Verachtung unternommen, indem die Option zum Hinzufügen einer "JavaScript" -Datei von der Benutzeroberfläche entfernt wurde. Obwohl JS-Dateien weiterhin verwendet werden könnten, wird die Unterstützung in späteren Versionen vollständig eingestellt.

Dies bedeutet auch, dass Boo unbrauchbar wird, da sein Compiler tatsächlich als Layer auf UnityScript erstellt und somit ebenfalls entfernt wird.

Dies bedeutet, dass in Zukunft nur C # native Unterstützung haben wird.

Unity hat bereits im August 2017 einen vollständigen Artikel über die Ablehnung von UnityScript und Boo veröffentlicht.

Cody Hatch
quelle
4
Stimmen Sie ab, was ich für die beste Antwort halte. Nur um sicherzugehen, dass ich es richtig lese, damit ich mit JS ein Spiel in Einheit schreiben und es dann auf einem iPhone oder Android-Gerät ausführen kann, weil es JS für Sie in Objective-C konvertiert? Vielen Dank.
Ryan
4
Ja! Sie können nur in JS schreiben und erhalten ein Spiel, das unter Windows, OS X, einem Webbrowser-Plugin, iPhone, Android, PS3 und Wii ausgeführt wird. (Hinweis: Für alle außer den ersten drei sind zusätzliche Lizenzen erforderlich.)
Cody Hatch
@CodyHatch "Abhängig von der Plattform, die möglicherweise Ziel C oder etwas anderes ist", nein. Für iPhone-Builds verfügt Unity über einige integrierte Obj-C-Boilerplates für die Schnittstelle mit einigen Cocoa-Touch-Frameworks. Der gesamte Code wird jedoch in Arm Assembly kompiliert. Sie können auch Objective-C-Plugins schreiben, um beispielsweise Zahlungen und Benachrichtigungen auszuführen.
Stephan van den Heuvel
1
"Neulinge gehen oft davon aus, dass JS nicht so gut ist wie die anderen drei, aber kompiliert und genauso schnell und funktional." - Entschuldigung, dass Sie einen alten Thread wiederbelebt haben, aber ich muss sagen, dass dieser Teil absolut falsch ist. Ich führe mehrere Benchmarks aus und JS arbeitet viel langsamer als C # (bis zu 100 Mal bei schwereren Berechnungen). Ich empfehle C #.
Przemysław Wrzesiński
2
@Aerovistae Ich weiß, dass dies spät ist, aber ab 2018 sind UnityScript und Boo völlig veraltet. Sie werden irgendwann vollständig versetzt sein, da Unity glaubt, dass nur noch wenige Menschen diese Sprachen verwenden. C # soll die einzige Sprache der Einheit sein, daher gibt es in dieser Angelegenheit keine Wahl mehr. In diesem Blog-Beitrag finden Sie weitere Informationen und in diesem Github-Repository ein Tool von Unity, das UnityScript in C # konvertieren soll.
GDP2
6

Wenn Sie in Unity für das iPhone erstellen, wird Ihre Mono-Assembly (in C # oder JavaScript geschrieben) im Voraus (AOT) in nativen ARM-Code kompiliert.

Das Authoring-Tool erstellt auch ein Stub-Xcode-Projekt und Verweise, die lib kompiliert haben. Sie können diesem xcode-Projekt objektiven C-Code hinzufügen, wenn Sie native Dinge tun möchten, die in der Unity-Umgebung noch nicht verfügbar sind (z. B. Zugriff auf den Kompass und / oder das Gyroskop).

Calvin
quelle
5

Unity3d unterstützt C #, Boo und JavaScript. Das Framework übersetzt dies in sein Zwischenformat und später auf die gewünschte Plattform (IOS / Android / Linux / Windows).

Beachten Sie, dass zuerst C # -Skripte kompiliert werden, gefolgt von JS und Boo. Wenn Sie also möchten, dass ein C # -Skript mit einem JS interagiert, müssen Sie das JS im Ordner "Standard Assets" behalten.


quelle
3

Unity unterstützt:
1. UnityScript (ist als Javascript bekannt, enthält jedoch mehr Funktionen für die Unity-Spiel-Engine. Ich denke, dies könnte sehr einfach zu erlernen sein.)
2. Boo (keine Erfahrung)
3. C # (Ich bevorzuge dies, da es nützlich ist lerne und du wirst dies auch außerhalb der Einheit nutzen können. Ich denke auch, dass es leicht ist, sich daran zu gewöhnen.

alexo1001
quelle
1

Sie können C #, Javascript, Boo verwenden.

Sofern die Rechenanforderungen für die von Ihnen geschriebene Funktion den Prozessor nicht stark belasten, bietet Javascript in den meisten Fällen eine ausreichende Leistung.


quelle
1

Es verwendet c # und Unityscript (Javascript), das vom Quellcode in C ++ unterstützt wird, sowie die Unterstützung von C ++ - Plugins (Quellcode und Plugins erfordern Pro).

Die Unity3d-Skriptreferenz ist bei Bedarf sehr einfach zu verstehen / zu verwenden, wahrscheinlich die einfachste unter Motoren wie Cryengine, UDK usw.

Hoffe das hilft.

user3210251
quelle
1

Man kann eine der folgenden drei Skriptsprachen verwenden:

  1. JavaScript
  2. C #
  3. Boo

Aber meine persönliche Wahl ist C #, weil ich es im Vergleich zu den anderen beiden schneller finde.

Mayank Gupta
quelle
3
Könnten Sie Ihre Antwort explizit angeben? Warum ist C # Ihrer Meinung nach im Vergleich zu den beiden anderen schneller? Bitte geben Sie Referenzen an.
m4rtin
1

Ich erinnere mich daran, dass ich einige Artikel über die Leistung in Einheit aus dem Internet gelesen habe, in denen Javascript-Benutzer davon abgehalten wurden, sie in Einheit zu verwenden, und zwar über wirklich massive Probleme bei der Verwendung von Javascript in Einheit anstelle von C #. Es heißt, dass C # fast viermal schneller ist als Javascript!
Ich schätze diesen Artikel sehr, der mir den Arsch gerettet hat, als ich mit dem Spielen anfangen wollte. Ich meine nicht, dass Javascript für Unity-Entwickler schlecht ist. Es ist gut, aber mein Rat könnte sein, dass Sie es verwenden sollten, wenn Sie Javascript verwenden für einfache kleine Spiele NICHT FÜR GROSSE PROJEKTE, weil es wirklich ein verdammtes Problem sein kann!

a_m_dev
quelle