警报灯光的闪烁变化

using UnityEngine;
using System.Collections;

public class AlarmLight : MonoBehaviour {

	public bool alarmOn = false;//警报灯开关
	private float turnSpeed=3f;//光强切换速度
	private float highIntensity=2f;//高光强度
	private float lowInensity=0f;//低光强度
	private float targetIntensity=0f;//目标光强度
	private Light currentlt;//当前灯光组件

	void Awake(){
		currentlt = GetComponent<Light> ();
	}

	void Update(){
		//如果开启警报
		if (alarmOn) {
			//确定目标光强
			if (currentlt.intensity == lowInensity) {
				//如果当前光强为低光强,设置目标光强为高光强
				targetIntensity = highIntensity;
			} else if (currentlt.intensity == highIntensity) {
				//如果当前光强为高光强,设置目标光强为低光强
				targetIntensity = lowInensity;
			}
			//设置当前光照强度
			currentlt.intensity = Mathf.Lerp (currentlt.intensity, targetIntensity, Time.deltaTime * turnSpeed);
			//如果当前光照强度已经特别接近目标,将其值设置为目标值
			if (Mathf.Abs (currentlt.intensity - targetIntensity) <= 0.05f) {
				currentlt.intensity = targetIntensity;
			}
		} else {
			//慢慢切换到地光强
			currentlt.intensity = Mathf.Lerp (currentlt.intensity, lowInensity,
				Time.deltaTime * turnSpeed);
			//光强接近时归零
			if (currentlt.intensity-lowInensity<=0.05f) {
				currentlt.intensity = lowInensity;
			} 
		}
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值