UnityはC#をスクリプト言語としてどのように使用しますか?


8

私の知る限り、これまでのところ、C#はコンパイルされた言語であり、常にコンパイルされた言語であると思っていました。私は最近Unity3dの研究を始めましたが、APIを介してスクリプトを作成し、ゲームオブジェクトとやり取りするためのオプションとしてC#を提供していることに気付きました(JavaScriptといくつかの他の選択肢とともに)。

これはどのように行われますか?C#は実際に実行されていますか、それとも、抽象化されて、別のスクリプト言語に変換されていますか?この機能については、ある種の解釈が行われているようです。


2
スクリプト言語とは何ですか?
jcora 2013年

en.wikipedia.org/wiki/Category:Scripting_languages言語は、コンパイル時ではなく実行時に解釈されます。
Brandon Clapp 2013年

2
ただし、JavaScriptは99%の時間で実行される前にコンパイルされ、一部のPython実装も実行されます。C(++)は解釈できます。言語の特性についてではなく、その使用方法について話しているため、この用語には欠陥があると思います。しかし、それは質問にとってあまり重要ではないようです...
jcora

「コンパイル」または「スクリプト」はプログラミング言語の特性ではありません。言語仕様を実装するときに、それを「コンパイル」するか「解釈」するかを決定できます。
Ivan Kuckir 2013年

1
そうは言っても、私が常に「スクリプト言語」として解釈してきたのは、この定義の基礎です。おそらく、その語彙は「解釈」されているはずですが、私はいつもそれらを同じもので見てきました。webopedia.com/TERM/S/scripting_language.html
Brandon Clapp

回答:


15

Unityは舞台裏でMonoを使用しています。C#/ UnityScriptスクリプトを変更するたびに、コードはほぼ瞬時に再コンパイルされます。

スタンドアロンのユニティプレーヤーのデータディレクトリを見ると、すべてのスクリプトがAssembly-CSharp.dllなどにコンパイルされていることがわかります。

はい、C#はコンパイルされています。


ああ、.dllがデータディレクトリにあります。これで問題が解決します。
Brandon Clapp 2013年

5
質問に実際に答えて、意味のある意味のある腕相撲の試合に変えないための+1
HumanCatfood 2013年

1
@BrandonClappこの回答で質問が解決した場合は、正しいものとしてマークしてください。
petervaz 2013年

1
これを復活させて申し訳ありませんが、UnityはエディターでコンパイルされたDLLのロードとアンロードをどのように処理しますか?または、新しい質問を開始する必要がありますか?
Jeff

-4

まず、スクリプト言語は必ずしも解釈言語ではありません。LuaやPythonなどの一部のスクリプト言語は、JITコンパイルまたは解釈することができます。

そして、質問自体については、C#はスクリプト言語ですが、Microsoftはそれをそのように見せないようにする上で良い仕事をしています。

C#には、スクリプト言語に必要なものがすべて含まれています。動的型付け、静的コンパイルではなくJITコンパイル、仮想マシンでの実行...

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.