🌃

【Unity】完全に暗闇にするための5つの手順

2021/04/25に公開

1.Directional Lightを非アクティブ、または方向を上向きに変更する。

2.lightningsettingを開き、Intencitymutipliierを0に。SkyboxのSourceがColorならBlackにする。

SkyBoxの時↓

Colorの時↓

3.背景も真っ暗にしたいのならカメラのClearFlagをDont Clearに。

4.オブジェクトが光っている場合、マテリアルを確認して以下項目変更

Terrainも光るので使用している場合はTerrainコンポーネント→LeyaersからMetalicを1に。

5.Bakeされている(光を既に張り付けた)状態だとオブジェクトはライトにかかわらず光るのでClearBakedDataを行う

レンダリングをリアルタイムにしたい場合やBake状態を無効にするにはLightningのGnerateLightningの三角ClearBakedDataからできます。

焚火以外全く見えない状態

完成です

上の5つの項目を切り替えるスクリプト

    public bool night;
    public GameObject playerLight;
    public Terrain terrain;
    public TerrainLayer[] terrainLayer;

void Start()
    {
        terrainLayer = terrain.terrainData.terrainLayers;
        if (night == true)
        {
            directionalLightOb.SetActive(false);
            RenderSettings.reflectionIntensity = 0;
            RenderSettings.ambientSkyColor = new Color(0, 0, 0);
            for (int i = 0; i < terrainLayer.Length; ++i)
            {
                terrainLayer[i].metallic = 1;
            }
            playerLight.GetComponent<Light>().enabled = true;
        }
        else
        {
            playerLight.GetComponent<Light>().enabled = false;
        }
    }

Discussion