このページには、2022 LTS バージョンから 2023.1 へのアップグレード時に既存のプロジェクトに影響する可能性がある、2023.1 の変更点をリストアップしています。
LightingSettings の Gaussian Filter Radius (ガウシアンフィルター半径) プロパティが浮動小数点値に変更
このアップグレードガイドでは、Unity のビルトインレンダーパイプラインのバージョン 2023.1 へのアップグレード方法を説明します。他のレンダーパイプラインをバージョン 2023.1 にアップグレードするには、以下を参照してください。
他のパッケージをアップグレードする場合は、使用しているパッケージのドキュメントを参照してください。
プログレッシブなライトマッパーの上級者向けフィルタリングオプションにはガウシアンのオプションがあります (Lighting ウィンドウ > Lightmapping Settings > Filtering > Direct Filter > Gaussian)。Gaussian (ガウシアン) フィルタリングの Radius (半径) コントロールは、0.5 などの 10 進数の増分をサポートするようになりました。以前は、このコントロールは整数ステップ (1 - 5) のみをサポートしていました。
この変更の結果、これらのプロパティは C# API で非推奨になりました。
int LightingSettings.filteringGaussRadiusAOint LightingSettings.filteringGaussRadiusDirectint LightingSettings.filteringGaussRadiusIndirect非推奨となったプロパティの浮動小数点は、以下のように置き換えられています。
float LightingSettings.filteringGaussianRadiusAOfloat LightingSettings.filteringGaussianRadiusDirectfloat LightingSettings.filteringGaussianRadiusIndirect非推奨メンバー関数のいずれかを呼び出して、ガウシアンフィルター半径を端数処理し、最も近い整数に設定できます。
ライトプローブはライトマップと同程度に明るくなりました。以前は、Unity のライトプローブの輝度は 94% にとどまっていました。このため、ライトプローブで照らされたオブジェクトは、ライトマップで照らされたオブジェクトよりも、やや暗く表示されていました。この変更は些細なものであるため、ユーザーの多くはその違いをはっきりとは認識できない可能性があります。
従来の外観にする必要がある場合は、以下の方法で実現できます。
Enlighten のベイクしたグローバルイルミネーションのライトマッピングバックエンドが、今後は使用できなくなりました。
プロジェクトをこのバージョンにアップグレードすると、ライトマッパーを選択するドロップダウンから Enlighten ベイキングバックエンドが削除され、Enlighten ベイキングバックエンドを選択した全てのシーンで、代用として Progressive Lightmapper が使用されます。
Apple シリコンのデバイスでは、Enlighten ベイキングバックエンドはプログレッシブ GPU ライトマッパーに置き換えられます。その他のデバイスでは、CPU プログレッシブライトマッパーに置き換えられます。
Enlighten の事前計算されたリアルタイムグローバルイルミネーションは引き続き使用可能であり、Unity 2024 LTS までサポートされます。
UnityPlayer Java クラスは、UnityPlayerForActivityOrService と UnityPlayerForGameActivity という 2 つの新しいブリッジクラスに置き換えられました。これらの新しいクラスは、いずれも UnityPlayer から派生していますが、displayChanged や windowFocusChanged などの一般公開メソッドは、UnityPlayer から UnityPlayerForActivityOrService に変更されました。
デフォルトの Unity アクティビティを拡張して UnityPlayer クラスを使用すると、コンパイルエラーが発生する場合があります。この場合、UnityPlayer の名前を UnityPlayerForActivityOrService に変更してください。
UnityPlayer Java クラスは今後、FrameLayout を拡張しません。FrameLayout にアクセスする必要がある場合は、UnityPlayer インスタンスで getFrameLayout 関数を呼び出してください。
RenderPipelineEditorUtility.FetchFirstCompatibleTypeUsingScriptableRenderPipelineExtension は非推奨になりました。代わりに GetDerivedTypesSupportedOnCurrentPipeline を使用してください。このメソッドのシグネチャも異なります。今後このメソッドは、最初に見つかった型だけでなく、派生型もすべて返します。Unity では型の順序を保証しないため、これにより矛盾を回避します。
CustomEditorForRenderPipelineAttribute と VolumeComponentMenuForRenderPipelineAttribute は非推奨になりました。代わりに CustomEditor と VolumeComponentMenu を使用してください。これらの属性がアクティブな場合にパイプラインの選択を制限するには、SupportedOnRenderPipelineAttribute と組み合わせて RenderPipelineAsset 型を指定します。ビルトインレンダーパイプラインで動作する SRP 属性をアクティベートする場合は、パラメーターなしで SupportedOnRenderPipelineAttribute を使用します。これにより、特定のパイプラインでアクティベートする必要がある場合に、両方の属性の統合ワークフローが提供されます。
Android Gradle プロジェクトを変更するための、新しい API が導入されました。API を使用して、以前の Android Gradle テンプレートのワークフローを置き換えることができます。新しい API が使用されていない場合でも、テンプレートは以前と同様に動作します。
新しい API を使用するには、以下のように Templates Upgrader を使用します。