Unity でのプログラミング
Unity が選ばれる理由
Unity では .NET ランタイムの実装を使用しているため、C# は最も人気の高いゲーム開発言語になっています。エンジンでは各ターゲットデバイス用に C# コードがコンパイルされるため、デスクトップ、モバイル、コンソール、AR、VR プラットフォームに展開できます。
Visual Studio や Rider などの現在の統合開発環境(IDE)の生産性向上を活用します。プロジェクトや Unity エディター自体を強化し、品質とパフォーマンスの分析などを実行するためのコードを記述してデバッグします。
Unity 内では、デザイナーやアーティストがよりクリエイティブになることができます。値の調整やアセットの統合などの反復的なタスクをオフロードしたり、チームのニーズに合わせてエディターを拡張したりできます。
Unity のプロファイリングおよびテストツールを使用して、問題を見つけ、コードを最適化できます。Backtrace for Unity を使用して、自動化されたクラッシュおよび例外検知をあらゆるプラットフォームから監視します。クラウドを介したコンテンツ配信により、ゲームの更新プログラムを簡単にリリースできます。
Unity では、アプリケーション用にリアルタイム 3D フレームワークを作成する必要はありません。Unity プラットフォームによって自動的に作成されます。スクリプトでインタラクティブなゲームプレイを制作することに注力し、エディターで直接テストしてください。Unity では C# を使用します。これにより、メモリの割り当てと割り当て解除、ガベージコレクションを使用したメモリリークの回避など、メモリ管理が自動的に処理されます。
「Unity Addressable Asset System により、私たちはさらに前進しました。メモリの問題をクリアにしてくれたので、これがなかったらSwitchですぐに出荷することはなかったでしょう」。- アンノウン・ワールズテクニカルディレクター マックス・マクガイア氏
Unityプラットフォームには、プロジェクトのコードとアセットを整理してパフォーマンスを最大化するためのツールが複数用意されています。たとえば、Addressables パッケージでは、コンテンツパックの作成と展開を簡略化することで、アセット管理のオーバーヘッドが処理されます。ScriptableObjects は、制作全体にわたって変更される可能性のある大量のデータを処理するプロジェクトに最適です。
「Plastic は、以前よりはるかにきめ細かく効果的なレベルでブランチモデルを設定できることを示してくれました。解析もナビゲートも簡単で、人々は破壊的でない方法でプロジェクトを飛び回ることができる」。- サリーム・ダブース、KO_OPスタジオ・ディレクター
Plastic SCMはUnityゲーム開発で推奨されるバージョン管理システムで、大規模なバイナリファイルを扱う際に最高のエクスペリエンスを提供し、高速なワークフローを実現し、チームの非コーディング担当者向けに簡素化されたインターフェースを提供します。エディタ内統合はPerforceでも利用可能で、Gitなど他の多くのソリューションも選択できる。
「Unity を使えば、アーティストはより多くの自由を手に入れ、プログラマーにお伺いを立てる必要が少なくなります。以前のエンジンでは、ビジュアルの統合に際して大部分をプログラマーに頼っていたのですが、今ではアーティストだけでできる部分が増えました。プログラマーが2ピクセル左に動かすとか、そんな些細なことを要求されなくなったことに気づきました」。- ルディア、コアテック・ディレクター、キャサリン・バルボー
Unity のプログラマーは、コードを介した値とアセットの操作に制限されず、エディターインターフェースを簡単に編集できるため、アーティストやデザイナーはゲームプレイを調整したり、エンジンで直接シーンをビルドしたりできます。デザイナーが動作をオフにしたい場合は、コードの書き直しを依頼する代わりにチェックボックスをオフにするだけで済みます。
「Arena of Valorでは、さまざまな国でさまざまなハードウェア構成をサポートしていますが、Unityを使用することで、すべての国で我々が期待する一貫性を確保することが非常に簡単になります。-Tencent Gamesテクニカルディレクター Mellow Yue氏
Unity は、あらゆる主要プラットフォームと深いパートナーシップを結んでいるため、最新のデバイスリリースに対応し続けることに頭を悩ませることなく、利用可能な 20 以上の展開オプションそれぞれから最大のパフォーマンスを引き出すことができます。Unity Input Systemは、プラットフォームの展開オプションやデバイスを問わず、コントロールの設定を1か所で行うことができます。
素晴らしいゲームをデザインしたら、Unity がそれを高速で安定したものにすることができます。Unity エディターには、ターゲットプラットフォームで利用可能なリソースを最大化するのに役立つ一連のプロファイリングおよび最適化ツールが含まれています。
Unity Profilerはアプリケーションのパフォーマンス情報を提供し、Memory Profilerはメモリ使用量の削減に役立ちます。Unityテストフレームワークを使用すると、コードが意図したとおりに実行されることを確認するための自動テストを作成できます。Backtraceは、クロスプラットフォームのクラッシュおよび例外管理からすべての手作業を取り除き、ゲームの出荷に集中することができます。
リソース
C# を初めて使用する場合は、.NET Framework を活用し、管理された環境の利便性を利用するのにこのガイドが役立ちます。
当社のエンジニアは、トップクラスのモバイルスタジオと協力し、プレーヤーの体験を向上させています。この無料の e ブックは、ゲームの向上に役立つ 75 件以上の詳細なヒントを現実の状況から集めています。
Unity は、オープンソースの .NET プラットフォームを使用して、ゲームをさまざまなハードウェア設定で実行できるようにします。スクリプティングバックエンド、.NET システムライブラリ、およびベストプラクティスの詳細をドキュメントで入手してください。
新機能
コーディング体験を合理化し、自信を持って制作できるように、Unity の最新リリースのシステム内部で強化された機能を活用して、高いパフォーマンスを発揮する最適化されたゲームを制作しましょう。
Unity Editorのコアを最適化することで、アセットのインポートからプレイアブルゲームのビルド、デプロイまで、制作物のライフタイム全体を通して素早く反復できるようになったことをご紹介します。
Burst は、IL/.NET バイトコードをプラットフォーム向けに最適化されたネイティブコードに変換するコンパイラーです。最新バージョンの Burst パッケージでは、イテレーション時間と Burst Inspector の両方が改善されています。