【实现100个unity特效之3】使用PerlinNoise(柏林噪声)实现平滑的灯光闪烁效果
·
解释
Perlin噪声是一种用于生成随机数的算法,常用于游戏中的自然环境生成,如地形、云层、水面等。它可以生成连续的、自然的随机数序列,使得生成的随机数更加真实。在这个代码示例中,Perlin噪声被用来生成一个随机数,用于控制灯光的亮度。具体来说,Mathf.PerlinNoise(Time.time, Time.time *5.0f)生成了一个在0到1之间的随机数,然后使用Mathf.Lerp(min, max, noise)将这个随机数映射到min和max之间,作为灯光的亮度值。
代码
using UnityEngine;
//灯光闪烁
[RequireComponent(typeof(Light))]
public class LightFlicker : MonoBehaviour {
private Light light;
public float min = 1.2f; //最小亮度
public float max = 2.0f; //最大亮度
private void Awake() {
light = GetComponent<Light>(); //获取灯光组件
}
private void Update() {
float noise = Mathf.PerlinNoise(Time.time, Time.time *5.0f); //使用Perlin噪声生成随机数
light.intensity = Mathf.Lerp(min, max, noise); //根据随机数设置灯光亮度
}
}
这个算法会返回一个0到1之间的 foat 类型的值
这个算法的特点是:随着参数 x,y 值的移动,它的返回值会是连续且平滑变换的随机值
完结
赠人玫瑰,手有余香!如果文章内容对你有所帮助,请不要吝啬你的点赞评论和关注,以便我第一时间收到反馈,你的每一次支持都是我不断创作的最大动力。当然如果你发现了文章中存在错误或者有更好的解决方法,也欢迎评论私信告诉我哦!
好了,我是向宇,https://xiangyu.blog.csdn.net
一位在小公司默默奋斗的开发者,出于兴趣爱好,最近开始自学unity,闲暇之余,边学习边记录分享,站在巨人的肩膀上,通过学习前辈们的经验总是会给我很多帮助和启发!php是工作,unity是生活!如果你遇到任何问题,也欢迎你评论私信找我, 虽然有些问题我也不一定会,但是我会查阅各方资料,争取给出最好的建议,希望可以帮助更多想学编程的人,共勉~

更多推荐



所有评论(0)