質問

私はUnity3Dを使用してゲーム開発から始めています、そしてスクリプトを作成するためのサポートされている3つの言語があることがわかります:C#、UnityScript、Boo ...

Webデザインから来ているのは、JavaScriptでは明らかに使用されていますが、私が知っている試みの後、Unity3Dは実際にはスクリプト言語およびnew Date().valueOf()のようないくつかの要素とそのようなメソッド内のいくつかの要素を実際にはありません。属性argumentsが正しく機能しないため、そのような他のすべてのメソッドを識別するラッパーメソッドを使用できないようです。

(function (scope) {
    function Start() {
        ...
    }
    ...
}(this));
.

そしてJSで有効なnew Date().valueOf()のようなものを使用する場合:

MissingMethodException:メソッドが見つかりません: 'system.datetime.valueof'。 boo.lang.runtime.dynamicDispatching.MethodDispatcherFactory.ProduceExtensionDispatcher()

だからコンパイラはその初期の 'UnityScript'コードをBoo Languageに変えるのですか?だからおそらくBooは正しい「ネイティブ」の選択であり、unityScript自体がUnity3Dアプリを開発するときに最善の方法ではありませんか?

私は問題なく働くすべての既知のネイティブクラスとメソッドを完全にサポートしている言語を考えていましたか?

上記の誤りをお詫び申し上げます。あなたがどう思うのか教えてください。

他のヒント

団結で開発者になり、それをキャリアを構築したい場合は、C#を学び、それを使用してください - UnityScriptであなたの時間を無駄にしないでください。プログラミングのためにUnityの外側のC#を使用できます。メインのキャリアがすでにWeb開発の場合(または該当する)場合は、最終的にC#とUnityScriptが同じ機能を持ち、C#はゲームやアプリケーションのプログラミングにはるかに広く使用されているため、JavaScriptを使用し続けます。

私が使用した店舗の資産の大部分はC#であるか、またはJSとC#の両方を提供します。言語間のミキシングは、既にUnityスクリプトロード順序で処理されているいずれかの言語でクラスを使用するためには、深刻な依存関係の問題が発生します。 C#でJavaScript定義クラスを使用するには、そのスクリプトファイルがC#スクリプトファイルの前に処理されている必要があります。その後、JavScriptクラスがC#クラスから何かを必要とする場合は、JavaScriptファイルから単に不可能なので、その周囲の方法を見つける必要があります。 Unityはスクリプト順序を定義する方法を持っています。

私はあなたがunityScriptとのミキシングについてあなたに警告すると思いましたが、あなたがもう一方に集中しないならば、あなたはこの問題に遭遇するでしょう。最終的には、C#はVBとJavaScriptのようなあいまいな言語とC ++のような小児語言語の間の中間地です(私は約10年のC / C ++の背景を持っています)。

あなたのタイトル「最高のxxxとは何ですか」は意見の答えにつながりますが、主観的なものではなく最善のアドバイスをしようとしています。 Unityが今から1年に行くことになったとしても、C#はあなたが続けることを可能にします。 UnityScript / JavaScriptは、Web開発者になるだけで移動することしかできません。 C#開発者は簡単にUnityScript / JavaScriptに移動できますが、逆ははるかに難しい(不可能ではなく、もう難しくありません)。

C#を使用する必要があります。それは人気があり、成熟して、.NET。C#は大きなチームが使用するものです。学習C#は将来的に役立ちます。Unity3DのJSは、すでに述べたように実際のJSではなく、Boo Of.Booについても聞いていません。

JSは、Unityで使用するための最も人気のある言語です。しかし、言語はMONOで実装されているため、その実装の制限はUnityスクリプトにも影響を与えることになります。

JSのモノラル実装がどのように機能するかわかりませんが、エラーメッセージから判断すると、少なくともBOOに最初に定義されたデータ型を使用します。ただし、JSが「Booになった」という意味ではありません。どちらも同じバイトコードにまとめられています。だからどちらの言語も他の言語も「もっと在来」です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top