Unity 2020.3 は LTS リリースで、2020.1 と 2020.2 でリリースされた機能が含まれており、2 年間サポートされます。詳しい情報や他の利用可能な LTS インストーラーについては、LTS リリースページ を参照してください。
Unity 2020 リリースの新機能、変更、改良点の詳細については、以下を参照してください。
2020.3 Release Notes
2020.2 Release Notes
2020.1 Release Notes
既存のプロジェクトを以前のバージョンの Unity からアップグレードする場合は、アップグレードガイド を参照してプロジェクトへの影響を確認してください。LTS ごとのアップグレードガイドは以下の通りです。
2019 LTS 以降に加えられた Unity 2020 LTS での変更点を確認し、影響を受ける領域のドキュメントを見ることができます。
より柔軟性を高めるために、シーンのコンテキストを離れることなくプレハブモードに入り、背景をグレー表示にしてプレハブを編集できるようになりました。 プレハブを別に編集することもできます。
パッケージマネージャーには、いくつかのデザイン状の更新が加えられました。新しいユーザーインターフェースの画像、レイアウトの改善、既にインストールされているパッケージと利用可能な更新情報のより明確な区別などが含まれます。
新しい軸変換設定を使用すると、3D モデリングソフトウェアでメッシュを再度開くことなく、軸のインポートの問題を修正できます。 SketchUp で作成したオブジェクトのカスタムプロパティをインポートできるようになりました。PNG ファイルをインポートする場合、ガンマ補正を無視するオプション (これは異なるプラットフォーム間で色の一貫性を保つのに役立ちます) があります。
Asset Import Pipeline v2 がデフォルトのアセットパイプラインになりました。
Focused Inspector ウィンドウを使用すると、選択したゲームオブジェクトの Inspector の詳細を簡単に確認できます。 選択したゲームオブジェクトまたはアセットのフローティング Inspector ウィンドウを開くには、右クリックして Properties を選択します。 複数の Focused Inspector ウィンドウを同時に開くことができるため、シーンに変更を加えながら、複数のオブジェクトにアクセスまたは参照できます。 また、ゲームオブジェクトの特定のコンポーネントに焦点を当てることもできます。これは、必要な画面スペースが少なくてすみます。
開発者は、新しい Progress API と Background Tasks ウィンドウを使用して、長時間実行される非同期操作にアクセスできるようになりました。これらのツールは連携して、独自のエディターウィンドウにタスクの進行状況を表示します。サブタスクの監視、ステータスによるタスクのフィルタリング、グローバルな進行状況の表示などを行うことができます。
Unity Accelerator のローカル管理者ダッシュボードを使用すると、チームのニーズに合わせてツールを構成し、その状態を評価し、ログと指標にアクセスできます。
Addressable Asset System (アドレス可能なアセットシステム) は、“アドレス” によってアセットをロードする簡単な方法を提供します。コンテンツパックの作成と展開を簡素化することにより、アセット管理のオーバーヘッドを処理します。パッケージにいくつかの新機能を追加しました。これには、サブオブジェクトのサポートやランタイムのカタログ更新など、開発ワークフローを向上させるための Unity エディターでの著しいユーザーエクスペリエンスの改善が含まれます。
Unity Hub バージョン 2.4.2 には、プロジェクト、ダウンロード、Unity エディターバージョン、モジュールを管理するために改良されたワークフローが含まれています。
QuickSearch 2.0 が利用可能になり、さらに多くの検索トークンと、クエリの入力時にコンテキスト補完を提供する機能が追加されました。開いているシーンだけに限定せず、プロジェクトのすべてのシーンとプレハブを一度に検索できるようになりました。
Editor Coroutines (プレビュー終了) を使用すると、MonoBehaviourスクリプト内のコルーチンが実行時に処理されるのと似た方法で、エディター内でイテレーターメソッドの実行を開始できます。
Profiler ウィンドウに図を追加して、既存またはユーザーが生成したプロファイラー統計のパフォーマンスに関するより多くの洞察とコンテキストを取得できるようになりました。
NonReorderable
属性 を使用してこの機能を無効にすることができます。カメラスタックを使用して、複数のカメラの出力をレイヤー化し、ひとつの結合した出力を作成できます。 これにより、2D ユーザーインターフェイスの 3D モデルや、車両のコックピットなどの効果を作成できます。
ライティング設定アセットを使用すると、ユーザーは複数のシーンで使用する設定を同時に変更できます。これは、複数のプロパティへの変更がプロジェクト全体にすばやく反映されることを意味します。これは、複数のシーンにわたってグローバルな変更を行う必要があるライティングアーティストにとって理想的です。例えば、プレビューと本番品質のベイクを切り替えるときに、ライティング設定をすばやく切り替えることができるようになりました。
ライトマッピング用のモデルの設定がはるかに簡単になりました。インポート時にパックマージンに必要なサイズを見つけるプロセスを簡素化するために、Unity はモデルインポーターでマージンを 計算 する方法を提供するようになりました。ここでは、モデルが使用される最低ライトマップ解像度と最小スケールを指定できます。それに基づき、Unity のアンラッパーが必要なパックマージンを計算するため、ライトマップが重複することがありません。
CPU と GPU ライトマッパー用のより良い非相関化方法を実装しました。 これらの非相関化の改善はデフォルトでアクティブであり、ユーザーによる入力は必要ありません。その結果、ライトマップがより少ない時間でノイズのない結果に収束し、アーティファクトがより少なくなります。
各レイの計算に費やされる時間を制限するために、ライトマッパーは各レイのパスを終了するいくつかの基準を見つける必要があります。これは、各レイが許可されるバウンスの数を制限して行うことができます。 プロセスをさらに最適化するために、“ロシアンルーレット” と呼ばれる手法を使用できます。この方法では、シーンのグローバルイルミネーションへのパスがどれほど意味があるかを考慮します。レイが暗いサーフェスにバウンスするたびに、そのパスが早く終了する可能性が高くなります。このようにレイをカリングすると、全体的なベイク時間が短縮され、ライトの品質にはほとんど影響しません。以前は、クッキーはリアルタイムライトのみに制限されていました。 Unity は、CPU および GPU ライトマッパーでクッキーをサポートするようになりました。つまり、ベイクドモードと混合モードのライトが、直接ライティングと間接ライティングの両方を減衰させる際のクッキーの影響も考慮することを意味します。
コントリビューター (影響を与える側) とレシーバー (受ける側) のシーンビューには、シーンのグローバルイルミネーション (GI) に影響を与えるオブジェクトが表示されます。これにより、GI がライトマップまたはライトプローブのどちらから取得されたかを簡単に確認できます。
ユニバーサルレンダーパイプライン (URP) には、ビルトインレンダーパイプラインと同等に近づける新機能があります。スクリーンスペースアンビエントオクルージョン (SSAO) は、シーンのアンビエントライトの視覚的品質を向上させます。新しい Complex Lit Shader を使用すると、ビルドデータのサイズを小さくして読み込み時間を短縮できます。Clear Coat マップ を使用して、カーペイントなどのマテリアルを模倣できます。
HD レンダーパイプライン (HDRP) には、ライティングのデバッグ に役立つ優れたツール、デカール システムの改善、有機マテリアルに対するフォグの吸収とサブサーフェススキャタリングをサポートする パストレーシング、高品質のデフォーカスブラーを備えたパストレース画像を生成するための新しい被写界深度モードなどが含まれています。 ハイエンドグラフィックスを目指すプロジェクトの出発点として最適な新しい HDRP サンプルシーンが利用可能です。このテンプレートには、HDRP を使用してリアルなシーンの作成を開始するのに役立つ、物理ベースのライトの強さなどの複数の既存設定が含まれています。Unity Hub からダウンロードできます。
ランタイムのアニメーションスプライトのデフォーメーションのパフォーマンスを向上させるには、パッケージマネージャーを通して Burst コンパイラー と Collections パッケージをインストールします。 これにより、2D Animation パッケージで Burst コンパイルと低レベルの配列ユーティリティを使用して、Unity のスプライトメッシュデフォーメーションの処理を高速化できます。
新しく拡張されたオプションを使用して、カスタムのコーナースプライトなしで隣接するエッジを接続できます。このオプションは、Splite Shape プロファイルでカスタムのコーナースプライトを指定する必要なしに、隣接するエッジを接続するためのジオメトリを作成します。新しいコーナーモードのスクリプト API サポートは、今後のリリースで追加される予定です。 Splite Shape メッシュベイクを使用すると、編集中にメッシュデータを保存できます。そのため、ランタイムに再読み込みでき、不要なランタイムのメッシュ生成を回避できます。
2D のデフォルトテンプレートが更新されました。そのテンプレートはすべての検証済み 2D ツールを含み、プリコンパイルされているため、2D ツールセットすべてを自由に使用できる新しいプロジェクトをすばやく読み込めます。テンプレートには、2D プロジェクトに最適なパッケージとデフォルト設定も含まれています。詳細は、フォーラムをご覧ください。 最近のすべての 2D ツールを紹介する 2D サンプルプロジェクト Lost Crypt が 2020.1 に更新されました。このプロジェクトは、すべての 2D ツールが連携して魅力的な 2D ゲームを作成する方法を示しています。
このリリースでは、2D Physics の多くの更新が行われています。これには、Rigidbody2D XY Position Constraint の改良が含まれます。これにより、任意の力で Rigidbody が完全にソリッドになり、ランタイムコストがほぼゼロになります。この機能は、Box2D の物理特性の変更に起因します。2D Physics Examples プロジェクト は、すべての 2D 物理機能を示すために、多くのシーンで更新されました。
Cinemachine は、ダイナミックで気の利いたコードレスカメラ用のツールスイートであり、シーンの構成とインタラクションに基づいて最高のショットを生み出すことができます。これにより、カメラの動作をリアルタイムで調整、反復、実験、作成できます。2020.1 では、Cinemachine のバージョン 2.5 が検証済みのパッケージになり、あらゆる規模のプロダクションに推奨されます。
Shader Graph には、Graph エディターのパフォーマンスの向上など、テクニカルアーティストのワークフローを改善する新機能が含まれています。詳細は、Shader Graph アップグレードガイド を参照してください。
VFX Graph の更新には Output Events が含まれており、ユーザーは C# のデリゲートインターフェースを通して、スポーンイベントに基づいてライト、サウンド、物理的反応、ゲームプレイを同期できます。
[Animation Rigging パッケージが検証されました。 これにより、ランタイムにアニメーション化されたスケルトンのプロシージャルな制御と、Unity エディターでの新しいアニメーションクリップのオーサリングが可能になります。
GI に対し、GPU ライトマッパーとCPU ライトマッパーの両方でバウンス制限が高くなりました。さらに、ライトマップの品質を向上させるためにブルーノイズサンプリングを使用するようになった他、いくつかの改良が加えられています。
Input System パッケージはプロダクション用に検証され、ほどんどの入力のニーズに安定したソリューションを提供可能になりました。
AR 開発用のマルチプラットフォームフレームワークである AR Foundation に、メッシュのサポートを加えました。仮想コンテンツが実世界のオブジェクトで遮られ、物理的な環境とリアルに相互作用できるため、AR 体験が現実の世界にはるかにシームレスに溶け込みます。
Samsung Adaptive Performance 2.0 には、可変リフレッシュレート、スケーラー、Adaptive Performance Simulator 拡張機能など、さまざまな機能を紹介する新しいサンプルプロジェクトが付属しており、あらゆるデバイスで Adaptive Performance をエミュレートできます。
スタンドアロンプレーヤー用の Apple シリコンのネイティブサポートにより、Mac ハードウェアの次の進化をターゲットにできるようになりました。
プレイヤーへのプロファイラー接続はより安定してきました。 特にローエンドの Android デバイスでは顕著です。C# Profiler API のメタデータサポートにより、プロファイラーで公開できるパラメーターを定義できるため、データからより多くのコンテキストを取得し、何がパフォーマンスに影響を与えているのかよりよく理解できます。Memory Profiler Preview パッケージ のキャプチャメモリのオーバーヘッドとキャプチャ時間を大幅に削減しました。Recorder
API を通して GPU プロファイルデータにアクセスできます。Sampler
API を使用してデータを収集し、独自のランタイムパフォーマンス統計オーバーレイで視覚化できます。
プロファイラーをスタンドアロンアプリケーションとして起動できるようになりました。これにより、このツールを Unity の外部の別のプロセスに移動できるため、エディターのプロファイリングとよりクリーンなプロファイルデータの作成時に発生するパフォーマンスオーバーヘッドが削減されます。
Visual Studio のインテグレーションは 1 つのパッケージになったため、ビルトインサポートがこれ以上開発されることはありません。このパッケージには、Visual Studio の起動の高速化など、新機能と改善も含まれています。
新しい C# デバッグワークフローにより、エディターはデフォルトでリリースモードの C# コード最適化で実行され、プロジェクトを再生モードで実行するときのパフォーマンスが向上します。プロジェクトをデバッグするには、再生モードに入る前にデバッグモードを有効にする必要があります。エディターを再起動せずにコード最適化モードを切り替えるには、Unity エディターの右下にあるステータスバーのデバッグボタンを選択します。
ジェネリック型のフィールドのシリアル化のサポートが改善されました。以前は、ジェネリック型 (class MyClass> など) がある場合に、その型を使用してフィールドを作成する場合は、その非ジェネリックサブクラス (例えば class MyClassInt : MyClassint>) を定義する必要がありました。この制限が削除されたため、ジェネリックのサブクラスを宣言する必要がなくなり、ジェネリック型を直接使用できます。
Burst コンパイラー を開発ツールとして進化させ、ネイティブのデバッグ機能を追加しました。Unity に附帯するネイティブデバッガーを使用して、ブレークポイントを設定し、一足飛びにコードにアクセス できるようになりました。コールスタック、変数、自動、スレッドを検査してナビゲートすることもできます。
Unity では、C# スクリプトをコンパイルするときに、-deterministic コンパイルオプションを利用できるようになりました。このオプションを使用すると、エディターのスクリプトをコンパイルするときにアセンブリのパブリックメタデータが変更されない場合に、アセンブリ定義 (.asmdef) 参照の不要な再コンパイルを回避できます。これは、直接または間接的な参照が多数あるアセンブリに変更を加える場合に、反復時間を短縮するのに特に役立ちます。詳細は、ビデオ Improve compilation times with deterministic C# compilation by default in Unity 2020.2 をご覧ください。
Unity は、デフォルトのインターフェースメソッドを除いて、最新の C# 8 の機能と改善をサポートするようになりました。 これには null 許容の参照型が含まれ、参照型変数に null を割り当てようとするときにコンパイラーが警告を表示できるようになりました。パターンマッチを使用した Switch 式を使用すると、より合理化された方法で条件式を記述できます。
C# の名前空間は、コードを整理し、他のパッケージやライブラリとのクラス名の衝突を回避するために効率的です。ルート名前空間が asmdef インスペクターの新しいフィールドとして使用できるようになり、それにより Unity、Visual Studio、Rider で新しいスクリプトを作成するときに自動的に名前空間が加えられます。この機能を使用する場合は、VisualStudio と Rider パッケージを最新バージョンに更新してください。
ビルドのコンパイル時間を短縮しました。マテリアル、シェーダー、プレハブなど、コードを伴わない変更を行う場合、プレイヤーを構築するときに、.NET アセンブリから C++ への IL2CPP 変換がすべてスキップされるようになりました。
ゲームプレイ中にオブジェクトの動きが途切れる原因となる一貫性のない Time.deltaTime
値を修正しました。また、TimeManager
インターフェースをリファクタリングして、フレーム時間の計算をより安定させ、ゲームが安定したフレームレートで実行されているときにオブジェクトの動きをスムーズにしました。これらの時間的安定性の改善は、さまざまなプラットフォームでサポートされています。
Unity 2020.2 は、ネストされたプレハブを含むいくつかの重要な最適化を備えており、著しく高速なソートと高速なルックアップを実現します。エディタースクリプトインポーター登録機能での検索は、最大 800 倍速いことが実証されています。また、Camera.main
をリファクタリングし、プロジェクトによってはクエリにかかる時間を数百ミリ秒短縮しました。
設定可能な Enter Play Mode は、もはや実験的な機能ではなくなりました。これにより、“ドメインの再読み込み” と “シーンの再読み込み” のいずれか、または両方を無効にして、再生モードへの移行を高速化できます。エディターコルーチン (プレビューを終了しました) を使用すると、MonoBehaviour スクリプト内のコルーチンがランタイムに処理されるのと同様の方法で、エディター内でイテレーターメソッドの実行を開始できます。
Unity Linker は静的分析を実行して、マネージコードを取り除きます。また、多くの属性を認識し、依存関係を識別できない場合には、依存関係に注釈を付けることができます。このツールは、Mono IL Linker に一致する API の更新を取得します。Unity Linker はいくつかの単純なリフレクションパターンを検出できるため、link.xml ファイルを使用する必要性が少なくなります。
コンパイルパイプラインは、Roslyn アナライザーをサポートするようになりました。これにより、反復ワークフローを中断することなく、Unity エディター内のバックグラウンドで C# コードアナライザーを非同期で実行できます。コマンドラインから同期で実行することもできます。
Unity セーフモードは、スクリプトのコンパイルエラーがあるプロジェクトを開いたときの Unity の動作を向上させます。エディターが起動時にコンパイルエラーを検出した場合、セーフモードにするように求められます。これにより、それらを解決するために設計された環境が提供されるため、プロジェクトのアセットの不要なインポートを待たずに、プロジェクトを機能的な状態にすばやく戻すことができます。 この機能は、プロジェクトを新しい Unity バージョンにアップグレードするプロセスを簡素化および高速化し、ライブラリフォルダーに誤ったインポートアーティファクトが含まれるケースを減らすことにより、大規模なプロジェクトで作業するチームを支援します。