警报灯设定"/>
unity官方demo学习之Stealth(二)警报灯设定
为light_alarm_directional添加脚本DoneAlarmLight
//AlarmLight.cs
using UnityEngine;
using System.Collections;public class DoneAlarmLight : MonoBehaviour
{public float fadeSpeed = 2f; // 警报灯强度的变化速度public float highIntensity = 2f; // 警报灯最大强度值public float lowIntensity = 0.5f; // 警报灯最小强度值public float changeMargin = 0.2f; // 阈值,决定何时改变强度变化的方向public bool alarmOn; // 检测警报是否开启private float targetIntensity; // 警报灯强度改变的目标强度值void Awake (){// 场景刚开始时,警报灯强度设为0light.intensity = 0f;// 第一次,警报灯强度值会向最大强度值改变targetIntensity = highIntensity;}void Update (){// 如果警报开启if(alarmOn){// 警报灯强度会 以设定的变化速度从当前强度向目标强度改变 light.intensity = Mathf.Lerp(light.intensity, targetIntensity, fadeSpeed * Time.deltaTime);// 这个函数检查目标强度是否需要改变 如果需要则进行改变CheckTargetIntensity();}else// 如果警报被关闭 警报灯强度渐变为0light.intensity = Mathf.Lerp(light.intensity, 0f, fadeSpeed * Time.deltaTime);}void CheckTargetIntensity (){// 如果 当前强度 与 目标强度 的差值的绝对值 小于 阈值if(Mathf.Abs(targetIntensity - light.intensity) < changeMargin){// 如果当前目标强度为 最大强度if(targetIntensity == highIntensity)// 那么就改设为 最小强度targetIntensity = lowIntensity;else// 否则 设为 最大强度targetIntensity = highIntensity;}}
}
这个写代码反而要简单点。。。美术要那么多配置,看着也是头疼
写完代码后保存,为6个喇叭(prop_megaphone_001---006)绑定音频源组件audio source,将Audio中的alarm_triggered添加到对应音频剪辑属性栏中
取消paly on awake(开始默认状态关闭),勾选Loop(循环播放),3D里面 min distance设为5,这是声音的范围
更多推荐
unity官方demo学习之Stealth(二)警报灯设定
发布评论