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

这篇具有很好参考价值的文章主要介绍了【unity小技巧】unity3d环境带雾的昼夜系统变化。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最终效果

【unity小技巧】unity3d环境带雾的昼夜系统变化,# unity小技巧,unity,游戏引擎,游戏,3d

眩光素材

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

眩光配置

眩光其实可以简单的理解为太阳或月亮
【unity小技巧】unity3d环境带雾的昼夜系统变化,# unity小技巧,unity,游戏引擎,游戏,3d

全局灯光配置

【unity小技巧】unity3d环境带雾的昼夜系统变化,# unity小技巧,unity,游戏引擎,游戏,3d

想要相机显示眩光,需要在相机添加Flare Layer组件
【unity小技巧】unity3d环境带雾的昼夜系统变化,# unity小技巧,unity,游戏引擎,游戏,3d

天空盒配置

天空盒资产

【unity小技巧】unity3d环境带雾的昼夜系统变化,# unity小技巧,unity,游戏引擎,游戏,3d

配置天空盒,开启雾

【unity小技巧】unity3d环境带雾的昼夜系统变化,# unity小技巧,unity,游戏引擎,游戏,3d
【unity小技巧】unity3d环境带雾的昼夜系统变化,# unity小技巧,unity,游戏引擎,游戏,3d

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

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));
    }
}

配置参数
【unity小技巧】unity3d环境带雾的昼夜系统变化,# unity小技巧,unity,游戏引擎,游戏,3d
配置20 25 30 70 75 80位置的灯光颜色,具体的需要根据自己的天空盒 环境等,调配出适合的颜色和过渡
【unity小技巧】unity3d环境带雾的昼夜系统变化,# unity小技巧,unity,游戏引擎,游戏,3d

效果
【unity小技巧】unity3d环境带雾的昼夜系统变化,# unity小技巧,unity,游戏引擎,游戏,3d
加眩光
【unity小技巧】unity3d环境带雾的昼夜系统变化,# unity小技巧,unity,游戏引擎,游戏,3d

参考

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

完结

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

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

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

【unity小技巧】unity3d环境带雾的昼夜系统变化,# unity小技巧,unity,游戏引擎,游戏,3d文章来源地址https://www.toymoban.com/news/detail-836547.html

到了这里,关于【unity小技巧】unity3d环境带雾的昼夜系统变化的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unity3D学习-Day01-环境搭建及学习资源导入

    版本选择可以最新,但是不能太老。因为很多资源都只兼容后续版本。 总体步骤可以概括为: 一:安装 1.下载 Unity Hub 2.下载最新的 Unity Personal 正式版 3.登录 Unity ID 4.安装编辑器时,保持默认安装选项。(尽量选择LTS的,我选择的是2020.3.4) 二:导入 1.下载项目 2.使用 Unit

    2024年02月07日
    浏览(72)
  • unity3D基础操作之01--unity3d窗口界面介绍

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 1、Scene场景编辑窗口; 2、Game游戏运行窗口; 3、Hierarchy场景物体列表窗口; 4、Project项目资源列表窗口; 5、Inspector属性编辑列表窗口; 6、其他常调节窗口 在屏幕左上方为场景编辑窗口Scene,在场景编

    2024年02月06日
    浏览(77)
  • 【Unity3D日常开发】Unity3D中协程的使用

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 大家好,我是佛系工程师 ☆恬静的小魔龙☆ ,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 最近有小伙伴问协程怎么用、怎么写,我也是会用会写,但是原理不是很明白。 学习了一下,总结出

    2024年02月12日
    浏览(55)
  • 【Unity3D小功能】Unity3D中实现Text显示版本功能

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 大家好,我是佛系工程师 ☆恬静的小魔龙☆ ,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 在项目开发中,会遇到要控制版本的情况,比如说对比版本号,版本不对再更新版本的功能,这些就是

    2024年02月05日
    浏览(70)
  • 【Unity3D日常开发】Unity3D中实现单例模式详解

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 大家好,我是佛系工程师 ☆恬静的小魔龙☆ ,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 首先,说一下,什么是 单例模式(Singleton) 。 单例模式是设计模式中常见的一种设计模式,目的是为了

    2024年02月02日
    浏览(62)
  • 【Unity3D-01】 记录Unity3D调用外接摄像头

    最近想在Unity3D上调用一个摄像头,通过查找资料发现仙魁XAN和八哥快走开的博客符合我的想法,实现起来也不难就尝试了一下 2.1 在这个工程里新建Canvas 如下图所示 然后下设RawImage为载体 2.2 在Assets里面新建一个脚本命名为PlaneManager.cs 代码内容如下(参考八哥快走开的博客)

    2024年02月04日
    浏览(51)
  • 【Unity3D小功能】Unity3D中实现点击‘文字’出现‘UI面板’

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 QQ群:398291828 大家好,我是佛系工程师 ☆恬静的小魔龙☆ ,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 宠粉博主又来了,今天有粉丝问我如何实现点击一段文字然后出现的面板在那段文字附近显示: 深入了

    2024年04月13日
    浏览(77)
  • 【Unity3D】Unity 脚本 ② ( Visual Studio 2019 中的 Unity 编译环境配置 | Unity 编辑器关联外部 C# 脚本编辑器 Visual Studio )

    在上一篇博客 【Unity3D】Unity 脚本 ① ( 创建 C# 脚本 | Visual Studio 2019 中打开 C# 脚本 | 编译 C# 脚本 | 挂载 C# 脚本到游戏物体 | 运行脚本 ) 中 , 双击 Unity 编辑器中的 Project 窗口中的 C# 脚本 , 进入到 Visual Studio 中出现下图样式 , 这是因为没有配置 Unity 编译环境 ; 参考如下两个博

    2023年04月08日
    浏览(66)
  • 【Unity3D日常开发】Unity3D中实现不同脚本之间的执行顺序控制

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 大家好,我是佛系工程师 ☆恬静的小魔龙☆ ,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 首先,来了解一下事件函数的执行顺序,下图是官方给的脚本中事件函数的执行顺序: 众所周知,U

    2024年02月02日
    浏览(52)
  • 【Unity3D小功能】Unity3D中实现仿真时钟、表盘、仿原神时钟

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 大家好,我是佛系工程师 ☆恬静的小魔龙☆ ,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 今天实现一个时钟工具,其实在之前已经完成了一个简单的时钟工具:【Unity3D应用案例系列】时钟、

    2024年02月05日
    浏览(72)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包