【unity2D】Light2D-学习记录1-代码控制光照的明暗渐变

目标

很多2D游戏里都有光照随时间渐变的设定,今天希望实现类似功能,用代码控制光照的明暗渐变

前言

我使用的是URP集成下的Light2D,具体如何设置参考视频教程。视频教程里没有代码部分的教学,故在此总结如何用代码控制。

代码相关

在看完视频教程并设置好相关参数后,开始写代码。

在引用命名空间时,网上的某些教程说要用这个:

using UnityEngine.Experimental.Rendering.LWRP;

但它已经过时了
image

要用更新后的:

using UnityEngine.Experimental.Rendering.Universal;

image

上代码:

using UnityEngine; using UnityEngine.Experimental.Rendering.Universal; //注意命名空间,不要用已过时的那个 public class GlobalLightTest : MonoBehaviour { private Light2D light2D; private float timer = 0; void Start() { light2D = GetComponent<Light2D>(); } void Update() { LightTimer(); light2D.intensity = Mathf.Lerp(0,1,timer); //这里我们用线性插值和timer实现渐变 //如果要控制在指定时间内变换,在Time.deltatime上乘“1/指定时间”即可 } private void LightTimer() { if(Input.GetKey(KeyCode.L) && timer <= 1)//按住L渐亮 { timer += Time.deltaTime; } else if(timer >= 0)//松开L渐暗 { timer -= Time.deltaTime; } } }

最终效果

image

总结

1.引用命名空间时,用的是using UnityEngine.Experimental.Rendering.Universal;
别用已过时的那个。
2.用线性插值和timer实现渐变,方便而简洁;如果不懂线性插值,那就正常设变量、变换、赋值,也能实现。

参考资料

Unity2019.3最新Universal RP通用渲染管线使用指南


__EOF__

本文作者OtusScops
本文链接https://www.cnblogs.com/OtusScops/p/14708096.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   AshScops  阅读(1580)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示