ボタンをクリックするだけで非常に滑らかでクロスブラウザ/プラットフォームになります。これは、技術的でないタイプをリードして、エンジン全体が現在使用しているものよりも本質的に優れていると結論付けています。UnityWebPlayerのすべてのブラウザー/OSプラグインバージョンを実装して洗練するのに時間をかけただけですか、それともエンジンアーキテクチャのセットアップ方法にもっと深いものがありますか?
1 に答える
Unity は、C#、UnityScript (JavaScript に基づく)、または Boo (Python に基づく) で記述されたスクリプトを受け取り、mono アセンブリにコンパイルします。これらのアセンブリ + ゲームに必要な 3D モデル、サウンド、およびテクスチャは、ブラウザー プラグインによって読み込まれる .unity3d ファイルに圧縮されます。ゲームのロジックのほぼすべてがマネージ モノ アセンブリにあるため、クロス プラットフォームで実行され、プラットフォーム固有の癖はほとんどありません。
彼らは最近、プラグインの検出とインストールのコードを書き直したので、ユーザーがプラグインを持っている場合は Unity コンテンツを表示し、他のコンテンツ (画像、フラッシュ、ビデオ) を表示する Web ページに JavaScript のブロックをドロップするのは非常に簡単です。しないでください。彼らのプラグインは、Mac と Windows のすべての A クラス ブラウザーをサポートしており、ブラウザーを再起動せずにプラグインをインストールできると思います。
Unity エンジンの利点の 1 つは、多数の市販のマネージド アセンブリを使用してプロジェクトに含め、Unity コードから呼び出すことができることです。ただし、これらのアセンブリによって実際に .unity3d ファイルのサイズが肥大化する可能性があることに注意する必要があります。
もう 1 つの利点は、技術者以外が変更できる調整可能なパラメーターを公開するコンポーネントを簡単に作成できることです。
さらにもう 1 つの利点は、適切に作成されたプロジェクトを iPhone、スタンドアロン、Android、Web などとの間で 1 日以内に移植できることです。私は自分の入力ハンドラーを変更し、テクスチャ圧縮を変更するだけで、個人的に iPhone to Web を実行しました。
大きな欠点の 1 つは、アプリケーションがマネージ コードを実行しているため、好奇心旺盛な人や悪意のある人がアセンブリを完全に読み取り可能なコードに逆コンパイルすることはそれほど難しくないということです。したがって、誰かがその情報を使って何ができるかを考える必要があります (マルチプレイヤーでのチート、ボットの作成、ハイスコアの改ざんなど)。アセンブリを難読化することは可能ですが、この手順をビルド プロセスに追加するのは簡単なことではありません。