【Unity】URPを使いつつ、Y座標で描画順を制御するには

TL;DR

Project Settingsの設定項目が隠されているので、 ScriptからCamera Settingsを操作しろ。

丁寧な説明

どうも、個人ゲーム開発者のゆみねこです。

すっかり3D専用のムードを出しているURPですが、2DのProjectで使いたい人も多いと思います。

2DゲームはY座標で描画順を制御する機能が必要になりますが、URPとの併用でハマったので備忘録として残しておきます。

なお、URPを2Dで使うためのセットアップ手順は以下の記事で解説しています。

スポンサードサーチ

Camera Settingsを探せ

描画順の制御は、Custom Axisが基本中の基本

SRPを使わない場合の方法は、Unity使いにとってもはやバイブルと化した伝説の「テラシュールブログ」さんにて細かく解説されています。

  1. Project Settings -> Graphics -> Camera Settings の順にアクセス
  2. Transparency sort modeCustom Axis にする
  3. Transparency Sort Axis(X:0、Y:1、Z:0) にする

有名ですよね。よーし、さっそくやってみよう。

Camera Settingsがない

A Scriptable Render Pipeline is in use, some settings will not be used and are hidden.

(翻訳)
Scriptable Render Pipelineが使用されており、一部の設定は使用されず、非表示になっています。

なんてこった。

Render Pipeline Assetファイルを漁っても、それらしき設定項目は見当たりません。もしや、自力でScriptable Render Pipelineを書けと……?

一度は絶望しかけましたが、簡単な方法で解決しました。

Scriptから直接Camera Settingsをいじる

GraphicSettings.TransparencySortMode.CustomAxis~Y座標が下のやつを手前に描画、上のやつを奥に描画する~

上記の記事のとおりにしたらできました。

やっていることはテラシュールブログさんと同じですが、末尾にScriptから操作する方法が書かれています。

一部の設定は使用されないと言っておきながら、Scriptから強制的にいじくるとあっさり上手くいくんですね。なんなんでしょうね。

本来ならSRPを自作するのが筋ですが、2020年2月現在は日本語の資料が古く、今から勉強するのは困難なので、当分はこれで凌ぎましょう。

記事をシェアする