WisdomSoft - for your serial experiences.

照明の色

照明の色を変更することで、 オブジェクトに指定した色の光を当てることができます。最終的なオブジェクトの色は、オブジェクト自身の色に照明の色を合成したものとなります。

光源の色を変更する

照明の色を変更することで、赤い光や青い光を表現できます。照明の色は Color プロパティで設定できます。

Light クラス Color プロパティ
public Color color { get; set; }

既定では、照明の色は完全な白に設定されています。照明に照らされたオブジェクトは、オブジェクト自身の色と、照明の色が混ぜ合わされて陰影が付きます。例えば、青い物体に赤い光を当てれば、光の当たっている部分は紫色に見えるでしょう。

コード1
using System;
using UnityEngine;

public sealed class Sample : MonoBehaviour
{
    private Light _light;
    
    void Start()
    {
        camera.transform.position = new Vector3(0, 0, -3);
        var cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
        cube.transform.Rotate(45, 45, 0);

        var lightObject = new GameObject("Light");
        lightObject.transform.position = new Vector3(1, 1, -1);
        _light = lightObject.AddComponent<Light>();
    }

    void Update()
    {
        var r = (float)Math.Abs(Math.Sin(Time.time));
        _light.color = new Color(r, 0, 1 - r);
    }
}
実行結果
コード1 実行結果

コード1はスクリプトから立方体オブジェクトと、これを照らす照明を生成しています。照明用の Light オブジェクトに Light コンポーネントを追加し、このコンポーネントの色を Update() メソッド内で周期的に更新しています。コードを実行すると、照明の色を変更することで、照らされている立方体オブジェクトの色が変化することが確認できます。