unity官方demo学习之Stealth(二)警报灯设定

编程入门 行业动态 更新时间:2024-10-12 01:32:30

unity官方demo学习之Stealth(二)<a href=https://www.elefans.com/category/jswz/34/1770878.html style=警报灯设定"/>

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(二)警报灯设定

本文发布于:2024-03-14 04:13:14,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1735596.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:警报   官方   unity   Stealth   demo

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!