症状と、最初に確認すること
URP AssetのRender Scaleや影の設定を変えたのに反映されない、Qualityを切り替えると見た目が戻る場合は、編集しているAssetと実際に選ばれているAssetが一致しているか確認します。この記事はUnity 2022.3 LTS・URP 14を基準にしています。
Qualityの指定がGraphicsの既定値に優先する
Unityは現在のQualityレベルにRender Pipeline Assetが指定されていれば、それを使います。Quality側がNoneなら、GraphicsのDefault Render Pipelineを使います。両方がNoneの場合はBuilt-in Render Pipelineです。Quality側をNoneにしただけで、必ずBuilt-inになるわけではありません。
例えばGraphicsにDesktopAsset、LowのQualityにMobileAssetを指定していると、Lowで有効なのはMobileAssetです。この状態でDesktopAssetの値だけを変更しても、Lowの画質設定は変わりません。
設定を確認する順番
- Edit > Project Settings > Qualityを開き、現在のレベル名とRender Pipeline Assetの参照を確認します。
- 参照先のURP AssetをProjectウィンドウで選択し、調べたい値を確認します。Quality側がNoneの場合だけ、Graphicsの既定Assetへ進みます。
- 対象プラットフォームの既定Qualityも確認します。Editorで選んだレベルと、Playerの起動時に使うレベルが同じとは限りません。
- 設定画面や起動コードでQualitySettings.SetQualityLevelを呼んでいないか検索し、Quality変更後にも有効なAsset名を確認します。
実行中のAssetをログで確かめる
次をActiveRenderPipelineReport.csとして保存し、シーン内のGameObjectに付けます。Play中にComponentのコンテキストメニューから「Log active render pipeline」を実行すると、現在のQuality名と選択されたAsset名をConsoleへ出します。これは設定を変更しない診断用コードです。
using UnityEngine;
using UnityEngine.Rendering;
public sealed class ActiveRenderPipelineReport : MonoBehaviour
{
[ContextMenu("Log active render pipeline")]
public void LogActivePipeline()
{
int index = QualitySettings.GetQualityLevel();
string[] names = QualitySettings.names;
string quality = index >= 0 && index < names.Length
? names[index]
: index.ToString();
RenderPipelineAsset asset = GraphicsSettings.currentRenderPipeline;
string pipeline = asset != null
? asset.name
: "Built-in Render Pipeline";
Debug.Log($"Quality: {quality}; Pipeline: {pipeline}", this);
}
}
ContextMenuはEditorでの操作用です。Playerで調べる場合は、初期設定の適用後やQuality変更後にLogActivePipeline()を呼び、対象端末のログで確認してください。GraphicsSettings.currentRenderPipelineがnullなら、その時点の選択はBuilt-inです。同名Assetが複数ある場合は、名前だけで区別せずProject内の参照先も確認します。
Assetが正しければ、Renderer・Cameraを調べる
URP AssetとUniversal Renderer Dataは別のAssetです。Render Featureを調べるときは、有効なURP AssetのRenderer Listをたどり、対象Cameraが選んでいるRendererを確認します。URP Assetが同じでも、CameraのRenderer指定によって使うRender Featureが異なる場合があります。ポストエフェクトなら、CameraのPost Processingと対象Volumeの適用条件も調べます。
修正後の確認
- 使用する各Qualityへ切り替え、有効なAssetと変更した値が意図どおりか確認する。
- Editorと対象Playerの両方で、起動直後と設定変更後のログを比較する。
- 調査後は一時的に変更した値を戻し、意図したQuality差だけが残るか確認する。
Qualityごとに別Assetを持つ設計なら、それぞれの参照と値を修正します。参照を一律Noneにしてしまうと、端末別に用意した設定差を失うことがあるため、原因の確認前にまとめて解除しないでください。Unity 6ではUI表記やURPの版が異なるため、利用中の版のマニュアルも確認します。