このページには、2021 バージョンから 2022 LTS へのアップグレード時に既存のプロジェクトに影響を与える可能性がある、Unity 2022 LTS バージョンの変更点を記載しています。
ノート: 2022 LTS は 2022.3.0 とも呼ばれます。
forceLimit
プロパティがインパルスではなく力の入力を受け付ける形に変更GradientField
の変更BatchRendererGroup
のサポート追加forceLimit
プロパティがインパルスではなく力の入力を受け付ける形に変更Articulation Drive の forceLimit
機能は、以前は力の制限ではなくインパルス (衝撃、刺激) の制限として使用されていました。このため、力の制限が fixedDeltaTime
の値に依存していました。
既にこの値をインパルスとして使用する形で導入している場合は、アップグレードすると、Articulation Body コンポーネントの Articulation Drive の forceLimit
の値が著しく不正確になります。
古いプロジェクトを開く時のためのチェックがあります。プロジェクトをアップグレードすると、Unity は、間違った設定を回避するために、自動的に関連の値を ProjectSettings > Time ページに設定された Time.fixedDeltaTime
で割ります。これは、プロジェクトに設定された Time 値に基づいてロボットのシミュレーションが行われるほとんどのケースをキャッチします。
ロボットのシミュレーションにスクリプトのカスタムの時間値を使用している場合は、これらの値を手動で修正する必要があります。
Unity の UV 生成手順が変更されました。モデルの Import Settings (インポート設定) で Generate Lightmap UVs オプションを使用しているプロジェクトでは、ライトマップが破損して見える場合があります。この問題を解決するには、プロジェクト内の全てのライトマップを再ベイクしてください。
この変更は、Generate Lightmap UVs を使用するプロジェクトにのみ影響します。
GradientField
の変更Unity 2022.1 から、GradientField
のカラーピッカーの HDR の設定が、デフォルトで有効ではなくなりました。GradientField
を使用する既存のプロジェクトでは、HDR カラーピッカーの代わりに通常のカラーピッカーが使用されるようになりました。
HDR カラーピッカーの使用を継続したい場合は、GradientField
の HDR プロパティを使用して有効にできます。
以下のフィールドが使用可能になりました。これらはランタイムで自動的に機能します。
DoubleField
FloatField
IntegerField
LongField
Hash128Field
RectField
RectIntField
Vector2Field
Vector3Field
Vector4Field
Vector2IntField
Vector3IntField
BoundsField
BoundsIntField
アップグレードを行っても、プロジェクト内の UXML ファイルは更新されず、引き続き動作します。ただし、新しい昇格された型を UI Builder を通して追加すると、UXML アセットの古い Unity バージョンとの後方互換性が破られます。UXML アセットの後方互換性を維持するには、UXML ファイル内で古い型 (UnityEditor.UIElements
名前空間) を使用する必要があります。
Physical Keys オプションを使用すると、(ユーザーの地域によって異なる場合がある言語別のレイアウトではなく) 物理的なキーボードレイアウトにキーコードをマッピングできます。例えば、1 行目の文字が “QWERTY”と並ぶキーボードもあれば、“AZERTY” と並ぶものもあります。つまり、一般的に知られる “WASD” キーを使用して移動を行う形でコントロールのスクリプトを記述した場合、AZERTY 配列のキーボードでは、(矢印キーの配列のように) 物理的に正しい割り当てになりません。Physical Keys オプションを有効にすると、Unity は、ユーザーの使用している実際のレイアウトに関係なく、キーの物理的な位置を表す一般的な ANSI/ISO の “QWERTY” レイアウトを使用します。つまり、“Q” キーを指定した場合、ユーザーのキーボードでその位置に別の文字が割り当てられていたとしても、必ず文字キーの最初の行の一番左の文字になります。
2022.1 現在、このオプションはデフォルトで有効になっており、将来的には古い動作を廃止し削除する予定です。
BatchRendererGroup
のサポート追加BatchRendererGroup
APIは元々 MegaCity デモのために記述されたものですが、完全にはドキュメント化されておらず、実装の詳細の多くが提供されていないために使用が困難でした。この API が一から記述し直され、完全にドキュメント化され、サポートされました。
新しいインターフェースの使用方法については、BatchRendererGroup のページを参照してください。
このアップグレードガイドでは、Unity のビルトインレンダーパイプラインのバージョン 2022.2 へのアップグレード方法を説明します。
他のレンダーパイプラインをバージョン 2022.2 にアップグレードする場合は、使用しているレンダーパイプラインのドキュメントを参照してください。
他のパッケージをアップグレードする場合は、使用しているパッケージのドキュメントを参照してください。
Enlighten のベイクしたグローバルイルミネーションのライトマッピングバックエンドが、デフォルトで使用可能ではなくなりました。プロジェクトをこのバージョンにアップグレードすると、ライトマッパー選択ドロップダウンから Enlighten ベイキングバックエンドが削除され、Enlighten ベイキングバックエンドを選択した全てのシーンで、代用として Progressive Lightmapper が使用されます。
Apple シリコンデバイスでは、Unity は Enlighten ベイキングバックエンドをプログレッシブ GPU ライトマッパーに置き換えます。その他のデバイスでは、Unity は CPU プログレッシブライトマッパーを選択します。
Enlighten のベイキングバックエンドを引き続き使用するには、Edit > Project Settings > Editor を開き、メニューの Graphics セクションで Enlighten for Baked GI (Legacy) を有効にします。ただし、このオプションは 2023.1 以降では使用できません。
Lighting ウィンドウで プログレッシブライトマッパー の Minimum Bounces プロパティが使用できなくなりました。
プロジェクトを 2022.2 にアップグレードすると、Unity は、Minimum Bounces の値を、ライトマッピングの推奨最小バウンス数である 2 にリセットします。この値を変更するには、LightingSettings API プロパティ minBounces を編集します。
Unity は、バージョン 2022.2 で、Android によって使用される全てのツールのデフォルトバージョンを更新しました。新しいバージョンは以下の通りです。
ツール | バージョン | |
---|---|---|
SDK | ||
Cmdline-tools コンポーネント | バージョン 6.0 | |
Build-tools コンポーネントバージョン | 32.0.0 | |
Platform-tools コンポーネント | 32.0.0 | |
プラットフォーム (API レベル) | 31 と 32 をデフォルトで追加 | |
Tools コンポーネント | 削除 | |
NDK | r23b | |
JDK (OpenJDK) | 11.0.14.1+1 | |
Gradle | 7.2 | |
Android Gradle プラグイン | 7.1.2 |
Gradle バージョン 7.2 への更新で、一部の build.gradle ファイルの設定オプションが変更されました。このため、Unity デフォルトの Gradle テンプレート に大幅な変更を加える必要がありました。Unity はカスタム Gradle テンプレートを新しい形式に合わせてアップグレードしないため、カスタムテンプレートファイルを含むプロジェクトはビルドに失敗する可能性があります。これを解決するには、カスタムテンプレートファイルを、新しいデフォルトテンプレートファイルに基づいて再作成してください。
build.gradle
設定オプションの変更については、Android Gradle プラグインのリリースノート を参照してください。
パッケージのドキュメントはこちらです。: https://docs.unity3d.com/Packages/com.unity.ai.navigation@latest
古いバージョンの Unity エンジンで Navigation 機能を使用して作成したプロジェクトがある場合は、以下の選択肢があります。
いずれの場合も、AI Navigation パッケージは、自動でインストールされてプロジェクトに追加されます。
新しいパッケージの使用を開始するには、以下の手順でプロジェクトを変換する必要があります。
変換処理の一環として、NavMesh Updater は以下の変更を行います。
異なるシーン内のナビメッシュが異なるエージェント設定でベイクされる場合、それらの設定に合わせて新しいエージェントタイプを作成する必要があります。エージェントタイプの作成は、以下の手順で行えます。
新しいエントリーを作成したら、以下を行う必要があります。
既存の各ナビメッシュに使用されていた設定を確認するには、Project ウィンドウで NavMesh .asset ファイルを選択します。ナビメッシュの設定が Inspector に表示されます。
プロジェクトが、Unity の NavMeshComponents GitHub リポジトリ からダウンロードされたスクリプトによって定義された NavMeshSurface
、NavMeshModifier
、NavMeshModifierVolume
、またはNavMeshLink
コンポーネントを使用している場合は、AI Navigation パッケージをプロジェクトに追加する前に、これらのスクリプトと関連ファイルを削除してください。これらのスクリプトを削除しないと、コンソールでこれらのコンポーネントに関連した競合やエラーが発生する可能性があります。新しいコンポーネントは、以下のコンポーネントを使用している場合を除き、プロジェクト内で古いコンポーネントと同じ動作を反映します。
NavMeshSurface
コンポーネントに、NavMeshModifier
を持つオブジェクトのみを使用してベイク処理を行うオプションが追加されました。NavMeshModifier
コンポーネントを適用するかどうかが指定可能になりました。