手順を忘れると、URP対応時に時間を取られるのでメモとして記録します。
もっと簡単に設定できる方法があれば、コメントを頂けると助かります。
※Unity2021.2以降の自動アップグレード方法が変更になっています。
URPに対応していないシェーダーがある場合
URP対応する場合の基本的な方法
Unity2021.1以前の方法
以下をクリックすると一般的なシェーダーはURPに対応したシェーダーに一括で変換することができる。
Edit > RenderPipeline > UniversalRenderPipeline > UpgradeProjectMatelialsToUniversalRPMaterials
Unity2021.2以降の方法
"Edit > RenderPipeline"の項目が無くなり、別ツールとして追加されています。
Built-in to URPを選択してConvertを実行します。
fbxとかに埋め込まれているようなReadOnlyになっていたマテリアルの場合、これまでは一度エクスポートしないと変換ができなかったのですが(その認識であってます?)、新コンバートツールではエクスポート無しで変換できるようになっています。
新RenderPipelineConverterの注意点
2021.2.7f1の時点では、従来の機能でURPマテリアルに変換した方が、変換できるシェーダーの種類に違いがあるようで、UIだけでは無く、内部の変換処理も変わっていると思われます。
ちなみに私の変換したかったマテリアルは従来の機能で変換した方が変換成功率が高かったため、若干劣化している様に感じました。
自分の使いたいマテリアルが2021版だけ変換できなった!というケースでは、一旦2020のプロジェクトでURP用のマテリアルに変換してから、コピーする方法が良いと思います。
2022/02/24追記:UnityStationで本機能の解説動画が公開されました
上手くシェーダーが変換されない条件
- カスタムシェーダーを使用している場合(URPに変換できない機能が含まれている場合)
- Prefabにマテリアルが組み込まれている場合
カスタムシェーダーを使用していた場合の対応
- 一つづつピンクに表示されているマテリアルを選択し、標準のシェーダーに変更する。
※複数同時にシェーダーを変更しようとすると、テクスチャが剥がれてしまうので、元のテクスチャを探すのが面倒になります。
Prefabに組み込まれているReadOnlyなマテリアルの対応
- Unity2021.2以降は組み込みマテリアルも自動変換できるので不要です。
- 本ケースの場合、シェーダーの編集自体ができなくなっているため、PrefabのInspecterからExtractMaterialsをクリックし、マテリアルをPrefab外に出力すると、編集が可能になる。
- UpgradeProjectMatelialsToUniversalRPMaterialsを実行する。