Wie verwendet Unity C # als Skriptsprache?

8

Meines Wissens habe ich bisher gedacht, dass C # eine kompilierte Sprache ist und war. Ich habe kürzlich angefangen, Unity3d zu studieren, und festgestellt, dass sie C # als Option für die Skripterstellung und Interaktion mit Spielobjekten über ihre API (zusammen mit JavaScript und einigen anderen Alternativen) angeben.

Wie wird das gemacht? Wird C # tatsächlich ausgeführt oder handelt es sich um eine Abstraktion, die unter dem Deckmantel in eine andere Skriptsprache konvertiert wird? Es scheint mir, dass für diese Funktionalität eine Art Interpretation stattfindet.

Brandon Clapp
quelle
2
Was sind Skriptsprachen?
JCora
en.wikipedia.org/wiki/Category:Scripting_languages Sprachen, die zur Laufzeit und nicht zur Kompilierungszeit interpretiert werden.
Brandon Clapp
2
JavaScript wird jedoch kompiliert, bevor es zu 99% ausgeführt wird, und einige Python-Implementierungen auch. C (++) kann interpretiert werden. Ich denke, dass die Terminologie fehlerhaft ist, da Sie nicht über eine Eigenschaft der Sprache sprechen, sondern über die Art und Weise, wie Sie sie verwenden. Aber es scheint, dass das für die Frage nicht wirklich wichtig ist ...
JCORA
"kompiliert" oder "skriptiert" ist nicht die Eigenschaft der Programmiersprache. Wenn Sie die Sprachspezifikation implementieren, können Sie entscheiden, ob Sie sie "kompilieren" oder "interpretieren" möchten.
Ivan Kuckir
1
Abgesehen davon ist das, was ich immer als "Skriptsprache" interpretiert habe, die Grundlage dieser Definition. Vielleicht hätte das Vokabular "interpretiert" werden sollen, aber ich habe sie immer im selben gesehen. webopedia.com/TERM/S/scripting_language.html
Brandon Clapp

Antworten:

15

Unity nutzt Mono hinter den Kulissen. Jedes Mal, wenn Sie Änderungen an Ihren C # / UnityScript-Skripten vornehmen, wird der Code fast sofort neu kompiliert.

Wenn Sie in das Datenverzeichnis eines eigenständigen Unity-Players schauen, können Sie sehen, dass alle Skripte in Assembly-CSharp.dll oder ähnlichem kompiliert wurden.

Also ja, das C # wird kompiliert.

Simon Moles
quelle
Ah, ich sehe die DLL jetzt im Datenverzeichnis. Das klärt die Dinge auf.
Brandon Clapp
5
+1 für die tatsächliche Beantwortung der Frage und nicht in ein pompöses semantisches Armdrücken-Match
verwandeln
1
@BrandonClapp Wenn diese Antwort Ihre Frage gelöst hat, markieren Sie sie bitte als richtig.
Petervaz
1
Entschuldigen Sie die Wiederbelebung, aber wie geht Unity mit dem Laden und Entladen der kompilierten DLL im Editor um? Oder soll ich eine neue Frage stellen?
Jeff
-4

Erstens sind Skriptsprachen nicht unbedingt interpretierte Sprachen. Einige Skriptsprachen wie Lua und Python können entweder JIT-kompiliert oder interpretiert werden.

Und was die Frage selbst betrifft: Weil C # eine Skriptsprache ist, aber Microsoft gute Arbeit leistet, damit sie nicht als solche aussieht.

C # bietet alles, was eine Skriptsprache benötigt: Dynamisches Tippen, JIT-Kompilieren statt statisches Kompilieren, läuft in einer virtuellen Maschine ...

UBSophung
quelle