Unity3D警报灯

这篇博客介绍了如何在Unity3D中实现警报灯功能,当角色进入危险状态时,警报灯会开启并逐渐变亮至最亮,然后慢慢变暗。当角色脱离危险,警报灯关闭,同时联动报警音乐的开关。内容包括警报灯的场景设置、属性配置,如颜色、Culling Mask和Mode,以及使用ChangeTargetIntensity()脚本来控制亮度变化,并通过Update()函数监测警报状态。开发者可以使用Lerp函数进行平滑过渡,并通过AlarmOn方法控制警报灯的启停。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

功能介绍:角色进入危险状态,触发警报灯。灯光开启,逐渐变亮,亮度达到最大值,逐渐变暗。 角色脱离危险,警报灯关闭。同时触发报警音乐的开启和关闭。

  1. 首先在场景中添加一盏警报灯。(Alarm Light)
  2. 设置好其Transfrom,Tag等。
  3. 默认不开启,Intensity值为0. 颜色一般为暗红色RGB(70,0,0)。
  4. Culling Mask为Everying,不参与烘培,Mode为Realtime。

添加脚本:

public float fadeSpeed=2f;	//灯光亮度渐变速度
public float highIntensity=4f;	//亮度最大值
public float highIntensity=0f;	//亮度最小值
public float changeMargin=0.2f;	//改变目标亮度的标志
public bool alarmOn;		//是否开启警报灯
private float targetIntensity;	//目标亮度,朝着改变的亮度
private Light alarmLight;	//警报灯对象

void Awake(){
	alarmLight=GetComponent<Light>();
	alarmLight.intensity=0;		//初始量度为0
	targetIntensity=highIntensity;	//目标为最大亮度
}

//切换目标亮度
void ChangeTargetIntensity(){
	if(Mathf.Abs(targetIntensity-alarmLight.intensity)<changeMargin){
		if(targetIntensity==highTensity)
			targetIntensity=lowTensity;
		else	
			targetIntensity=highTensity;
	}
}

//控制警报灯开启逻辑代码
void Update()
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值