WisdomSoft - for your serial experiences.

照明の範囲

照明が届く範囲は、照明の range プロパティに設定されいる距離で変更できます。この値が大きいほど、より遠くのオブジェクトを照らせます。

照明が届く距離と強さ

ポイントライトやスポットライトの場合、照明の光が届く範囲が存在し、照明の範囲によって物体に当たる光の強さも変わります。この値をスクリプトから変更することで、照明を点滅させるというような演出も可能です。

照明の範囲は range プロパティで表されます。

Light クラス range プロパティ
public float range { get; set; }

このプロパティが表す照明の位置から光が届く範囲は、照明の種類がポイントライトの場合は球の半径、スポットライトの場合は照明が向いている方向に対する距離となります。ただし、均等に平面を照らすディレクションライトにおいては range プロパティは作用しません。range プロパティの値を変更しても、効果は何もありません。

コード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(3, 3, -3);
        _light = lightObject.AddComponent<Light>();
    }

    void Update()
    {
        var range = (float)(10 + Math.Abs(Math.Sin(Time.time) * 10));
        _light.range = range;
    }
}
実行結果
コード1 実行結果

コード1は立方体と照明オブジェクトを作成し、フレームごとに照明の range プロパティの値を周期的に増減させるスクリプトです。range の値が大きくなり、照明の範囲が広くなると、立方体に当たる光が強くなっていることが確認できます。