Unityでオブジェクトが真っピンク(マゼンタ)になるのは、マテリアルかシェーダーに問題があるという目印です。
公式マニュアルは、この色を「エラーシェーダー」と呼んでいます。
- 原因の例:URP や HDRP のプロジェクトに、Built-in 用のシェーダーのマテリアルがある
- ほかの原因:シェーダーのコンパイルエラー、マテリアルが付いていない、機種がシェーダーに対応していない
- 直し方:パイプラインに合ったシェーダーに変える(Render Pipeline Converter など)
この記事は、Unity公式マニュアル(Unity 6.3、2026年9月29日に確認)にもとづいています。
ピンクはエラーシェーダー
公式マニュアルには、オブジェクトのマテリアルやシェーダーに問題があるとき、Unityはマゼンタ(明るいピンク)のエラーシェーダーで描くと書かれています。
例として、マテリアルが割り当てられていないとき、シェーダーがコンパイルできないとき、シェーダーが対応していないときが挙げられています。
変更前にプロジェクトをバックアップし、Unityとパイプラインの版、対象端末、シェーダー名を記録します。
Scene・Game・Projectの見本・実行ビルドのうち、どこでピンクになるかを分けて確認してください。
Consoleにエラーがある場合は、その全文と対象のシェーダー名を控えてから設定を変更します。
原因と直し方
| 原因 | よくある場面 | 直し方 |
|---|---|---|
| パイプラインとシェーダーが合わない | Built-in 用のアセットを URP・HDRP のプロジェクトに入れた | 現在のパイプラインをGraphicsとQualityで確認し、URPならURP用、HDRPならHDRP用の対応シェーダーへ変換する |
| シェーダーのコンパイルエラー | シェーダーのコードに誤り、Unityのバージョンが合わない | コンソールとシェーダーのインスペクターのエラーを見て直す |
| マテリアルが付いていない | モデルを読み込んだだけ、マテリアルを消した | メッシュレンダラーにマテリアルを割り当てる |
| 機種がシェーダーに対応していない | 特定の機種に書き出したときだけピンク | その機種で動くシェーダーに変える |
URPのプロジェクトで直す
- ピンクのマテリアルを選び、インスペクターでシェーダーの名前を見る
- Standard など Built-in 用なら、「Universal Render Pipeline/Lit」などに変える
- たくさんある場合は「Window」→「Rendering」→「Render Pipeline Converter」でまとめて変換する
コンバーターで変換できるのは、変換先のURPに対応するルールが用意されたマテリアルです。
標準のコンバーターは独自シェーダーを自動変換しません。
URP対応版への変更、シェーダーの修正、独自の変換ルールの用意が必要です。
変更前のマテリアルを保全し、まず試験用コピーで1つずつ確認してください。
同じマテリアルを使う別のオブジェクトも控え、変更後に意図しない見た目へ変わっていないか確認します。
ピンクが消えても透明部分や陰影が変わった場合は、一括変換へ進まずプロパティの対応を見直します。
シェーダー名だけを変更すると、テクスチャ・透明設定・法線マップなどの対応が不足する場合があるため、各プロパティも見直します。
手順は、UnityのBuilt-inからURPへの移行で紹介しています。
実機例:Standardの1素材をURP/Litへ変更する
URPのプロジェクトでCubeがピンクになった例を、Windows 11 ProのUnity 6.6(6000.6.5f1)で確認しました。
使用したURPパッケージは17.6.0です。
Cubeに割り当てたマテリアル「PinkTest」はベースの色が白ですが、シェーダーをStandardにすると、Cubeもプロジェクトウィンドウの見本もピンクになりました。

まず、プロジェクトで使っているレンダーパイプラインを確かめます。
この検証では、Edit > Project Settings > Quality の現在の品質設定がPCで、Render Pipeline AssetにPC_RPAsset(Universal Render Pipeline Asset)が割り当てられていました。
Graphicsの既定のアセットが空でもQuality側に設定があることがあるので、Graphicsだけを見て判断しないようにします。

次に、ピンクになっているマテリアルをプロジェクトウィンドウで選び、インスペクターのシェーダー欄からUniversal Render Pipeline/Litを選びます。
検索欄にLitと入力した場合は、Lit(Universal Render Pipeline)を選びます。
Baked LitやComplex Litは別の項目です。
Unityの公式マニュアルでも、Built-inのStandardに対応するURPのシェーダーとしてLitが示されています。

この1つのマテリアルをURP/Litに変えると、Cubeのピンクが消え、白い面に陰影が出ました。
画像01と画像04は、視点も照明も変えずに撮っています。
Cubeの位置やシーンの照明の設定も変えていません。
保存してEditorを終了し、同じプロジェクトを開き直したあとも、シェーダーはUniversal Render Pipeline/Litのままで、白いCubeの表示が保たれていました。

ここで確認したのは、URPのテストプロジェクトでStandardを使っていた1つのマテリアルの例です。
テクスチャ付きのマテリアルや自作シェーダーの変換、一括変換、実行ビルドでは確かめていません。
ピンクになる原因はほかにもあるため、この変更だけですべてが直るとは限りません。
参考(2026年10月10日に確認):
Unity Manual「Built-In Render Pipeline prebuilt shaders in URP reference」
Unity Manual「Lit shader material Inspector window reference for URP」
プロジェクトの一覧の見本だけがおかしいとき
変換後にProjectビューのサムネイルだけがおかしい場合はReimport Allが公式の対処例です。
全体の再インポートに時間がかかり、非対応シェーダーそのものを直す操作ではありません。
Editorでは正常で、ビルドだけピンクになるとき
まず、対象端末のGraphics APIとハードウェアが、そのシェーダーに対応しているかを確認します。
次に、ビルドで必要なシェーダーバリアントが除外されていないかを調べます。
バリアントは、キーワードの組み合わせなどに応じて作られるシェーダーの種類です。
不要な種類をビルドから省く処理を、ストリッピングと呼びます。
必要な種類が不足すると、通常はUnityが近い種類を代用し、代用もできない場合にエラーシェーダーを使います。
不足を調べるには、検証用プロジェクトでEdit > Project Settings > Playerを開きます。
Other SettingsのShader SettingsにあるStrict shader variant matchingを有効にし、対象端末向けにビルドして問題の場面を実行してください。
この設定では、必要な種類がない場合にピンクを表示し、不足したバリアントとキーワードをコンソールの警告に出します。
ピンクを消す設定ではなく、不足を見つけるための設定です。
ビルド時の除外状況は、Editor.logでCompiling shaderを検索すると調べられます。
警告とログを手がかりに、そのシェーダーのストリッピング設定を見直してください。
根拠:Unity 6.6公式の不足バリアント検出手順(2026年10月26日確認)。
上の診断手順は公式資料との照合で、この記事では実行ビルドの不足再現や修正後の描画確認を行っていません。
ピンクになりにくくするには
- プロジェクトのパイプラインを作り始めに決める
- アセットを入れる前に、対応しているパイプラインを確かめる
- Unityのバージョンを上げる前に、パイプラインのパッケージとアセットの対応版を確認する
パイプラインの違いは、UnityのURP・HDRP・Built-inの違いと選び方で紹介しています。
まとめ
- ピンク(マゼンタ)は、マテリアルかシェーダーに問題がある目印
- 原因の一つはパイプラインとシェーダーの不一致。色だけで原因を断定しない
- 変換ルールがあるBuilt-in用マテリアルは、Render Pipeline ConverterでURP用へ変換する
- 自作・アセットのシェーダーは、対応する版に入れ替える
参考:Error and loading shaders、Shader loading(2026年10月24日再照合)。
Editorでは正常でもビルドだけピンクになる場合は、Graphics API・実機の対応に加え、必要なシェーダーバリアントがストリッピングで除外されていないかも確認します。
