Unity Pro Tips

オフィシャル記事詳細

Unity を手早く操作する

<このページで学べる内容>

時間節約になる数々のショートカットについて説明しています。 Unity を使用したゲーム開発の経験豊かな InnoGames の Yilmaz Kiymaz 氏が、開発をスピードアップするための選りすぐりのヒントをご紹介いたします。メニュー項目のショートカット、ワークフローを自動化する方法、演算時間を減らす方法などを取り上げています。Yilmazさん、よろしくお願いします!

1)エディター内のショートカット

次のようなショートカットがあります。

  • 新しいゲームオブジェクト:Cmd/Ctrl + Shift + N
  • GameObject.SetActive:Alt + Shift + A
  • ゲームオブジェクトの追加:Cmd/Ctrl + Shift + A

リストの全容はドキュメントのこのページで確認できます。追加のProject ウィンドウのショートカットはこちらです。

メニュー項目のショートカット

ショートカットなしのメニュー項目がある場合は、EditorApplication.ExecuteMenuItem を使用できます。または、独自のメニュー項目を作成できます。カスタムメニューを追加する方法については、Unity Learn のこのチュートリアルで説明しています。

2)自動化のヒント

AssetPostprocessor:Unity にアセットをインポートする際、ゲームパフォーマンスをどういった状態にするかについては構成可能なインポートの設定がたくさんあります。そのため、想定している通りに設定を選択する(およびそれらを覚えておく)ことが重要です。AssetPostprocessor API を使用することで、インポートパイプラインに接続して、アセットのインポート前後にスクリプトを実行できます。

ISerializationCallbackReceiver:2 つのリストをシリアライズ/デシリアライズしなければならない場合に、後になって本当にシリアライズやデシリアライズができているかどうかということに不安を覚えてしまうと、実に厄介です。Dictionary とシリアライズのコールバックを使用してシームレスに処理してしましょう。

EditorApplication のコールバックは Unity の動作を変え、エディターを思い通りに操作できるようにするために重要です。

OnValidate():これはコンポーネント内のいずれかの値を変更するときにはいつでも呼び出されることになります。つまり、値の範囲が正しいこと、その他必要になる可能性があるカスタム機能が適切であるかどうかを検証するのです。

PostProcessBuildAttribute は、XCode でのポストプロセス中にビルドを作成する場合や、一部のファイルを改良したものへ変更する場合にも便利です。アクション実行までの時間を短縮するためにできることについて取り上げています。

3)演算時間を減らすためのヒント

キャッシュサーバーを使用してテクスチャのインポート時間を避けるようにします。もしくは、設定で「Compress assets on import」を選択してテクスチャのインポート時間を遅らせるようにします。ほとんどの場合において、新しいプロジェクトを開く際に圧縮されたバージョンのアセットを見る必要はありません。

コード(サードパーティのライブラリコードや独自のユーティリティーコード)を Plugins フォルダーに入れることで、コンパイルにかかる時間を短縮します。「Plugins」フォルダー内のコードは異なるアセンブリにコンパイルされます。ゲームコードを変更して Plugins フォルダー内のコードを変更しない場合に、後者はコンパイルされないため、再コンパイルにかかる時間が短縮されます。

また、DLL を使用することもできます。今ではアセンブリ定義ファイルによって簡単に実行できますが、これにより、どのスクリプトがどのアセンブリにある必要があるかを指定できます。こうすることで、変更を加えたスクリプトのみがそのアセンブリ内の他のスクリプトと共にコンパイルされます。

Unity の DLL とアセンブリ定義ファイル

また、インクリメンタルコンパイラーもお試しいただけます。現在は実験段階にありますが、Microsoft の Roslyn オープンソースコンパイラープロジェクトを使用して構築されたインクリメンタルコンパイラーは、C# コード上の繰り返しに要する時間を大幅に短縮する目的で設計されており、C# 7.2 の最新機能にもアクセスできます。

Unity のインクリメンタルコンパイラー

CompileTimeTracker という名前のツールを使用して、コンパイル時間を追跡できます。このツールを使用すると、スクリプトの再コンパイルに要する時間が次第に長くなっていく状態を管理できるようになります。現在のコンパイル時間のログを表示し、その時間をたとえば前日にかかった時間と比較できるだけでなく、カンマ区切りファイルとしてエクスポートすることもできます。

終わりに、スクリプティングを色々なアプローチで行うことができることをお話します。このライブラリを使用すれば、Unity のスクリプトをネイティブコード(C、C++、アセンブリ)で記述することができるようになります。すべてのプロジェクトに適しているわけではありませんが、規模の大きめなプロジェクトに取り組んでいるチームの場合で、開発者が C++ でのコーディングに慣れていてメモリを独自で管理することがお好みであれば、試してみることをお勧めします。

4)Unity で新しい(かつ面白い)ものを見つけられる場所

Unity パッケージマネージャー

パッケージマネージャーとは、Unity で開発された新しい機能をプロジェクトに動的に読み込んで更新するモジュラーシステムと API のことです。詳しくは、こちらのブログをご参照ください。パッケージに関するドキュメンテーションはこちらです。

Unity パッケージマネージャー

Unity GitHub リポジトリ

Unity の GitHub リポジトリで見つからないものはありません。実験段階のものだけでなくプレビュー段階にある機能から、サンプルプロジェクトやサンプルスクリプト、デモまで、あらゆるリソースの宝庫です。

この記事はいかがでしたか?