WisdomSoft - for your serial experiences.

照明を配置する

3D 空間上に照明を配置することで、周囲のオブジェクトを明るく照らすことができます。照明は、よりリアリティのある空間表現に必要となるでしょう。

照明の生成

照明は、他のコンポーネントと同じようにシーン内のゲームオブジェクトに設定可能なコンポーネントです。ゲームオブジェクトに周囲を照らす明かりとしての役割を与えます。照明の周辺のオブジェクトは、照明の強さや色に応じた影響を受けます。

照明は UnityEngine.Light クラスで表されます。カメラなどと同様に Component クラスから派生しているため、任意のオブジェクトに AddComponent() メソッドで追加できます。

UnityEngine.Light クラス
public sealed class Light : Behaviour

例えば、照明が存在しないシーンのオブジェクトは環境光に設定されている色のみ影響を受けますが、照明を設定することで、ある方向から照らされたような描画が行われ、陰影によってリアリティのある立体的な表現が可能になります。

コード1
using System;
using UnityEngine;

public sealed class Sample : MonoBehaviour
{
    private GameObject _gameObject;

    void Start()
    {
        _gameObject = new GameObject("Light");
        _gameObject.AddComponent<Light>();
    }

    void Update()
    {
        var x = (float)Math.Sin(Time.time) * 2;
        var y = (float)Math.Cos(Time.time) * 2;
        _gameObject.transform.position = new Vector3(x, y, -1);
    }
}
実行結果
コード1 実行結果

コード1は照明を設定するためのオブジェクトを生成し、これに Light コンポーネントを追加しています。Update() メソッド内で X 軸と Y 軸に対して周期的に移動させています。スクリプトを実行すると照明が回転移動するので、照明の位置からオブジェクトが照らされていることが確認できるでしょう。