【unity小技巧】unity3d环境带雾的昼夜系统变化

最终效果

在这里插入图片描述

文章目录

  • 最终效果
  • 眩光素材
  • 眩光配置
  • 全局灯光配置
  • 天空盒配置
    • 天空盒资产
    • 配置天空盒,开启雾
  • 代码控制天空盒 环境 雾 灯光昼夜交替变化
  • 参考
  • 完结

眩光素材

链接:https://pan.baidu.com/s/1qlFSJSju6ZjwCylwkh14eA?pwd=veww
提取码:veww

眩光配置

眩光其实可以简单的理解为太阳或月亮
在这里插入图片描述

全局灯光配置

在这里插入图片描述

想要相机显示眩光,需要在相机添加Flare Layer组件
在这里插入图片描述

天空盒配置

天空盒资产

在这里插入图片描述

配置天空盒,开启雾

在这里插入图片描述
在这里插入图片描述

代码控制天空盒 环境 雾 灯光昼夜交替变化

public class DayAndNight : MonoBehaviour
{[Header("雾的颜色渐变")][SerializeField] private Gradient fogGradient;[Header("环境光颜色渐变")][SerializeField] private Gradient ambientGradient; [Header("太阳光颜色渐变")][SerializeField] private Gradient directionLightGradient;[Header("天空盒色调渐变")][SerializeField] private Gradient skyboxTintGradient; [Header("方向光源")][SerializeField] private Light directionalLight;[Header("天空盒材质")][SerializeField] private Material skyboxMaterial;[Header("白天持续时间(秒)")][SerializeField] private float dayDurationInSeconds = 60f; [Header("天空盒旋转速度")][SerializeField] private float rotationSpeed = 1f;private float currentTime = 0;  // 当前时间(0-1)private void Update(){UpdateTime();UpdateDayNightCycle();RotateSkybox();}// 更新当前时间private void UpdateTime(){currentTime += Time.deltaTime / dayDurationInSeconds;currentTime = Mathf.Repeat(currentTime, 1f);}// 更新白天黑夜循环效果private void UpdateDayNightCycle(){// 计算太阳的位置float sunPosition = Mathf.Repeat(currentTime + 0.25f, 1f);directionalLight.transform.rotation = Quaternion.Euler(sunPosition * 360f, 0f, 0f);// 更新雾、环境光、太阳光和天空盒的颜色RenderSettings.fogColor = fogGradient.Evaluate(currentTime);RenderSettings.ambientLight = ambientGradient.Evaluate(currentTime);directionalLight.color = directionLightGradient.Evaluate(currentTime);skyboxMaterial.SetColor("_Tint", skyboxTintGradient.Evaluate(currentTime));}// 旋转天空盒private void RotateSkybox(){float currentRotation = skyboxMaterial.GetFloat("_Rotation");float newRotation = currentRotation + rotationSpeed * Time.deltaTime;newRotation = Mathf.Repeat(newRotation, 360f);skyboxMaterial.SetFloat("_Rotation", newRotation);}// 在应用程序退出时重置天空盒颜色private void OnApplicationQuit(){skyboxMaterial.SetColor("_Tint", new Color(0.5f, 0.5f, 0.5f));}
}

配置参数
在这里插入图片描述
配置20 25 30 70 75 80位置的灯光颜色,具体的需要根据自己的天空盒 环境等,调配出适合的颜色和过渡
在这里插入图片描述

效果
在这里插入图片描述
加眩光
在这里插入图片描述

参考

【视频】https://www.youtube.com/watch?v=ME6Bh9Hclgk

完结

赠人玫瑰,手有余香!如果文章内容对你有所帮助,请不要吝啬你的点赞评论和关注,以便我第一时间收到反馈,你的每一次支持都是我不断创作的最大动力。当然如果你发现了文章中存在错误或者有更好的解决方法,也欢迎评论私信告诉我哦!

好了,我是向宇,https://xiangyu.blog.csdn.net

一位在小公司默默奋斗的开发者,出于兴趣爱好,最近开始自学unity,闲暇之余,边学习边记录分享,站在巨人的肩膀上,通过学习前辈们的经验总是会给我很多帮助和启发!php是工作,unity是生活!如果你遇到任何问题,也欢迎你评论私信找我, 虽然有些问题我也不一定会,但是我会查阅各方资料,争取给出最好的建议,希望可以帮助更多想学编程的人,共勉~

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/449625.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

了解 Redis Channel:消息传递机制、发布与订阅,以及打造简易聊天室的实战应用。

文章目录 1. Redis Channel 是什么2. Redis-Cli 中演示使用3. 利用 Channel 打造一个简易的聊天室参考文献 1. Redis Channel 是什么 Redis Channel 是一种消息传递机制,允许发布者向特定频道发布消息,而订阅者则通过订阅频道实时接收消息。 Redis Cha…

N-142基于springboot,vue停车场管理系统

开发工具:IDEA 服务器:Tomcat9.0, jdk1.8 项目构建:maven 数据库:mysql5.7 项目采用前后端分离 前端技术:vueelementUI 服务端技术:springbootmybatis-plus 本项目分为普通用户和管理员…

OceanBase 4.2.2 GA 发布,全新特性快速预览!

在 2023 年度发布会上,OceanBase 沿着“一体化”产品战略思路,发布了一体化数据库的首个长期支持版本 4.2.1 LTS。作为 4.0 系列的首个 LTS 版本,该版本的定位是支撑客户关键业务稳定长久运行,我们非常认真的打磨了这个版本&#…

深入理解网络编程之BIO和NIO

目录 原生JDK网络编程BIO BIO通信模型服务端代码 BIO通信模型客户端代码 伪异步模型服务端代码(客户端跟之前一致) 原生JDK网络编程NIO 什么是NIO? NIO和BIO的主要区别 阻塞与非阻塞IO NIO之Reactor模式 NIO中Reactor模式的基本组成…

数据分析基础之《pandas(4)—pandas画图》

1、DataFrame.plot(xNone, yNone, kindline) 说明: x:设置x轴标签 y:设置y轴标签 kind: line 折线图 bar 柱状图 hist 直方图 pie 饼图 scatter 散点图 # 找到p_change和turnover之间的关系 data.plot(xvolume, yturnover, kinds…

手把手教你开发Python桌面应用-PyQt6图书管理系统-主界面UI设计实现

锋哥原创的PyQt6图书管理系统视频教程: PyQt6图书管理系统视频教程 Python桌面开发 Python入门级项目实战 (无废话版) 火爆连载更新中~_哔哩哔哩_bilibiliPyQt6图书管理系统视频教程 Python桌面开发 Python入门级项目实战 (无废话版) 火爆连载更新中~共计24条视频&…

随着网络的快速发展,网络安全问题也日益凸显,遇到攻击该如何处理,如何抉择合适的防护方案

DexunCloud 经过研究发现当今世界,随着网络的快速发展,网络安全问题也日益凸显。其中,DDoS(分布式拒绝服务)攻击被认为是网络安全领域里最为严重的威胁之一。毫无疑问,DDoS攻击不仅可以导致网络服务中断&am…

2024 高级前端面试题之 HTTP模块 「精选篇」

该内容主要整理关于 HTTP模块 的相关面试题,其他内容面试题请移步至 「最新最全的前端面试题集锦」 查看。 HTTP模块精选篇 1. HTTP 报文的组成部分2. 常见状态码3. 从输入URL到呈现页面过程3.1 简洁3.2 详细 4. TCP、UDP相关5. HTTP2相关6. https相关7. WebSocket的…

【数据结构】单向链表实现 超详细

目录 一. 单链表的实现 1.准备工作及其注意事项 1.1 先创建三个文件 1.2 注意事项:帮助高效记忆和理解 2.链表的基本功能接口 2.0 创建一个 链表 2.1 链表的打印 3.链表的创建新节点接口 4.链表的节点插入功能接口 4.1 尾插接口 4.2 头插接口 4.3 指定位…

一文掌握单基因GSEA富集分析 | gseaGO and gseaKEGG

本期教程 本期教程原文:一文掌握单基因GSEA富集分析 | gseaGO and gseaKEGG 写在前面 关于GSEA分析,我们在前期的教程单基因GSEA富集分析 | 20220404有出过类似的分享。今天,我们也结合相关的资源整理出一篇关于GSEA的教程及出图教程。每个…

springboot整合rabbitmq,及各类型交换机详解

RabbitMQ交换机: 一.交换机的作用 如果直接发送信息给一条队列,而这一消息需要多个队列的的多个消费者共同执行,可此时只会有一个队列的一个消费者接收该消息并处理,其他队列的消费者无法获取消息并执行。所以此时就需要交换机接…

只用一台服务器部署上线(宝塔面板) 前后端+数据库

所需材料 工具:安装宝塔面板服务器至少一台、域名一个 前端:生成dist文件(前端运行build命令) 后端:生成jar包(maven运行package命令) 准备: 打开宝塔面板,点击进入软…