【unity2D】场景光照随昼夜交替而变化-实现思路1
目标
在饥荒(Don't Starve)和泰拉瑞亚(Terraria)里,游戏场景的明暗会随着时间推移、昼夜交替而产生变化。今天试图初步实现这个机制。
实现思路
思路
- 要模拟昼夜变化,先要实现“游戏内的时间系统”。基于Time.deltaTime,做一些变换即可模拟时间的推移。
- 模拟出了时间的推移,接下来,只需在特定时间段内,平滑地调整场景灯光的色彩、明暗即可。这里的灯光使用的是Light2D。
代码片段
与UnityEvent相结合的时间系统:
2D全局光照:这里的代码是从Light2D-学习记录3中的修改而来
在Inspector窗口里手动注册事件。
不足
这段代码是为了快速实现2D光照变化,很多其他细节没有考虑进去。如果有更复杂的需求,则需要改动。
补充
- 将UnityEvent和“游戏内的时间系统”相结合,优点是:几乎任何“到了特定时间即调用”的方法,都可以看作是“订阅者”,把“游戏内的时间系统”看作是“发布者”。
- 然而缺点也很明显:当委托的数量越来越多时,难以管理且运行效率不高。(UnityEvent的运行效率比C#Event的运行效率慢一些)
最终效果
为了方便测试,我把游戏内的一天定为30秒,即这个动图有30秒。
__EOF__

本文作者:OtusScops
本文链接:https://www.cnblogs.com/OtusScops/p/14727854.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/OtusScops/p/14727854.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)