【Unity】ポイントライトを点滅させて切れかけの蛍光灯を作る

投稿者: | 2020-04-28

蛍光灯と点滅するポイントライトを使って、切れかけの蛍光灯を作ってみました。

まずポイントライトにスクリプトを使って、LightコンポーネントのIntensityを変えて点滅させます。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class PointLightScript : MonoBehaviour
{
    [SerializeField] AnimationCurve curve;
    [SerializeField] float speed;
    [SerializeField] float intensity;

    Light light;
    float t = 0f;

    // Start is called before the first frame update
    void Start()
    {
        light = GetComponent();
    }

    // Update is called once per frame
    void Update()
    {
        t += Time.deltaTime;

        light.intensity = intensity * curve.Evaluate(t * speed);
    }
}

ランダムにすると不自然だと思ったのでアニメーションカーブで点滅の仕方を設定してみます。アニメーションカーブはインスペクタから設定します。

Point Light

ライトには蛍光灯がチカチカと鳴る音声を出すためのAudio Sourceも追加しました。

アニメーションカーブでは、縦軸の値を0~1の範囲にしながら、急に明るくなって徐々に暗くなるとか、たまに細かく点滅するというのを表現してみました。

右端の歯車をクリックしてLoopを選択すると、同じカーブを繰り返します。AnimationCurve.Evaluate()に横軸の値を入れると、対応する縦軸の値が返ります。引数に経過時間を入れているので、カーブに沿って値が変化し続けます。

これでチカチカと点滅する蛍光灯の光と音ができました。冒頭の動画ではポイントライトのすぐ下に蛍光灯のモデルを配置しました。

コメントを残す

メールアドレスが公開されることはありません。