インポートした状態から始めます
基本的な使い方
画像をシーンに配置します

2D Light > Light > Light からシーンに Lightを配置します

ゲームシーンが中央だけ照らされた状態になります
LightのSizeを大きくして最初に配置したオブジェクトが映るように調整します


LightCollider2Dをつけて、MaskTypeをSprite Physics Shapeにします。

画像の処理を行い、影の作成をもう少し調整します
Open Sprite Editorを押します

Custom Physics Shapeを選択

Physics Shapeを修正して、Apply

Updateを押して、シーン内に反映させます


影に隠れているとき、特別な処理を行う
オブジェクトにLight Event Listenerスクリプトをつけることで
下記のように、オブジェクトの影に隠れてしまっているとき、
Visabilityパラメータを読み込むことでどれくらい隠れているかを認識することができます。
(隠れていないときは1)


現状の設定では光の大きさによって、上の画像のように影に隠れているはずの
オブジェクトがくっきり見えてしまうので、
これを利用して、影に隠れているときはオブジェクトを表示しないスクリプトを作成してみます
using FunkyCode;
public class LightEventCs : MonoBehaviour
{
public LightEventListener lightEventListener;
public LightCollider2D lightCollider2D;
// Update is called once per frame
void Update()
{
if(lightEventListener.visability<1)
{
lightCollider2D.enabled = false;
}
else
{
lightCollider2D.enabled = true;
}
}
}
LightEventListernerを使うには、Light 2DからEventシーンの作成が必要です。
画面上にあるToolsから Lighting 2Dを押してタブを開きます

Light Event Presetsを開いて名前をつけてあげます

シーン内の設置された Light 2Dを選択して、Event Presetから先ほど作成したEvent名を選択します

こんな感じになりました

Asset Store
詳しくは下の動画から
コメント