Unity開発でC#とUnityScriptはどのように違いますか?[閉まっている]


13

言語の明らかな違い以外に、Unity3Dでゲームを開発する場合、UnityScriptとC#はどのように異なりますか?

  • 顕著なパフォーマンスの違いはありますか?
  • UnityScriptコードはそのままパッケージ化されていますか?はいの場合、これはゲームのモダビリティに役立ちますか?
  • ある言語用に開発されたライブラリを使用し、他の言語用に開発することは可能ですか?
  • 同じUnityプロジェクトで2つの言語を混在させることはできますか?C#で一部をコーディングし、UnityScriptで他をコーディングしますか?

非書き込みコンポーネントが賢明です。ただし、C#では、DLLインポートなどの追加機能を使用できます。それ以外は「選択」です。そして完全に主観的です。忘れないでください、あなたのコードを書くことができるBooもあります。
シダー14年

2
客観的な答えの役に立つ質問-それが閉じられたというのは不公平のようです。
UpTheCreek 14

1
この質問が閉じられた主な理由は2つあり、それらは質問の有用性や回答の客観性とは関係ありません。最初に、この投稿は無関係な質問を複数求めます。第二に、尋ねられた質問のいくつかは、あまりにも議論志向であり、および/または書かれた適切なものではない。質問がどれだけ「役に立つ」か、または人気があるか、または回答がどれだけ良いかは、質問がサイトに適切かどうかとは無関係です。

回答:


12

顕著なパフォーマンスの違いはありますか?

いいえ。技術的には非常に小さなパフォーマンスの違いがありますが、ほとんどの場合、言語の選択の基礎となるほど重要ではありません。

ある言語用に開発されたライブラリを使用し、他の言語用に開発することは可能ですか?

はい。ライブラリの開発者が推奨するフォルダー構造を保持している限り、そのライブラリには任意の言語からアクセスできます。これは、Unityのコンパイル順序に関係しています。ただし、オートコンプリートなどのIDEの一部の機能は、選択したライブラリでは機能しない場合があります。(編集:これは、Visual Studio用の無料プラグインUnityVSを使用して修正できます。)

一部をC#でコーディングし、他の部分をJavascriptでコーディングすることで、同じUnityプロジェクトで2つの言語を混在させることは可能ですか?

繰り返しますが、はい。ただし、すべてが正しい順序でコンパイルされていることを確認する必要があるため、すぐに複雑になります。技術的には可能ですが、1つの言語を選択して使用することをお勧めします。

ゲーム開発者固有の優れたリソース(書籍、ウェブサイト、フォーラム)があるのはどの言語ですか?

言いにくい。フォーラムを閲覧してみると、Javascriptにはもう少しチュートリアルとコード例があります。コードは一般に他の言語に移植するのは非常に簡単ですが、ライブラリはクロス言語で使用できるため、これは大きな問題ではないでしょう。


8

Unity開発者の最初の質問はすべてC#またはJSです。常にC#を使用します。

今、あなたは「しかし、私はC#を学びたくないし、すでにJavaScriptを少し知っている」と考えているかもしれません。

しかし、考慮する必要がある誤解を招くものは、Unity JavaScriptはJavaScriptではないということです.NET CLRを介したECMA構文の表面的なベニアです。JavaScriptが匿名のエンクロージャーや関数参照を好むようなクールなことは、通常の使用方法とは異なります。通常の.net配列と一致しない独自の配列があり、C#を使用することで回避できた多くの落とし穴と制限に遭遇します。Unity JavaScriptは、.NETの威圧感を軽減するために設計された、キャンディーでコーティングされた構文のレイヤーにすぎません。善よりも害をもたらすでしょう。


7

まず、2つの主な理由から、UnityでのプログラミングにはJavaScriptよりもC#をお勧めします。最初の理由は、あなたが無視した強い/弱いタイピングの違いに帰着します。概念的なレベルでは、強い型付けは弱い型付けよりも優れていると思いますが、率直に言って、それは人々が持っている大きな議論です。確かに知っているのは静的入力のみです。Unityには、この理由でJavaScriptで静的型付けを強制できるディレクティブ「#pragma strict」もありますが、それは2番目の理由に私を連れて行ってくれます...

第二に、UnityのJavaScriptはブラウザーのJavaScriptと完全に同じではありません。これは、Unityの外部の知識(JavaScriptに関するリソースの大部分)をUnityのプログラミングに適用しようとすると問題を引き起こします。多くのUnity開発者がこの言語をUnityScriptと呼ぶのはこのためです。


次に、特定の質問に対処します。

顕著なパフォーマンスの違いはありますか?

そうでもない、ない(いくつかの詳細

JavaScriptコードはそのままパッケージ化されていますか?はいの場合、これはゲームのモダビリティに役立ちますか?

プラットフォームに依存しますが、これはモダビリティに実際には役立ちません

ある言語用に開発されたライブラリを使用し、他の言語用に開発することは可能ですか?

私はそう思う(私がこれをする必要はなかったが、私が使用するすべてのライブラリはC#でプログラムされていたので)

一部をC#でコーディングし、他の部分をJavascriptでコーディングすることで、同じUnityプロジェクトで2つの言語を混在させることは可能ですか?

はい(一貫性の理由から、私はそれを避けようとしますが)


dentedpixel.com/developer-diary / ...を 回答に追加することをお勧めします。賛成。
グレー14年

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