気軽に遊べるミニゲームを制作しています

ブラウザゲームまとめ

【Unity Asset】Smart Lighting 2Dの使い方

Unity Asset

インポートした状態から始めます

基本的な使い方

画像をシーンに配置します

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

詳しくは下の動画から

コメント

タイトルとURLをコピーしました