この記事を書いたキッカケ
3Dで作成したプロジェクトで2DLightを使おうとしたらちょっと引っかかったのでその備忘録として書きます。
使用したUnityバージョン
2022.3.33f1
2DLightを使えるようにするまでの下準備
まず3DURPでプロジェクトを作成していると思うのでプロジェクトを開きます。
最初の状態では2DLightなどがプロジェクトに含まれていないので2DPackageをPackageManagerからインポートします。
その後NewSceneで2D用のシーン(Standard(URP))を作成します。
そのままだとRendererが3D用のものになっていてうまく2Dのオブジェクトが表示されないので、編集する必要があります。
まずは使用しているURPAssetを探しましょう。
使用しているURPAssetがどれかはEdit->ProjectSettings->Graphicsの一番上を見ることで分かります。
使用しているURPAssetがどれかわかったらRendererListに2D用のAssetRendererを追加します。2D用のAssetRendererはこの時点ではないはずなのでCreate->Rendering->URP2DRendererを選択して作成します。
作成したら使用しているURPAssetを選択し、InspecterのRendererListから作成した2DRendererを登録します。
2DLightを使う
2DLightを使うシーンを作成します。作成したシーンでは2D用のRendererを用いるため、カメラのRendererに2DRendererを設定します。
シーンビューとGameシーンビューで使われるRendererは必ずしも同じになるわけではありません。シーンビューではURPAssetでデフォルトに設定したRendererが使われ、Gameシーンビューではカメラに適用されているRendererが使われます。これにより、それぞれの画面で映るものが違うことがあります。
設定したらシーン上にライトを設定します。
全体にライトを適用したい場合は、HierarchyからLight->GlobalLightを作成することでできます。
ライトを作成したら明るさを適用するSpriteを設定していきましょう。2DObject->Sprite->Squareで適当なSpriteを設定して画面全体に映るようにします。
デフォルトのマテリアルだと2DLightが反映されないのでマテリアルを作成し、シェーダーにUniversalRenderingPipeline->2D->Sprite-Lit-Defaultを設定します。
完成
GlobalLightとFreeformLightを置いたもの