当前位置: 首页 > news >正文

Unity3D 入门:如何制作天空效果?天空盒的使用

在 Unity 编辑器的主界面中我们可以很容易制作各种场景物体,但天空如何制作呢?


本文内容

    • 了解和设置默认的天空盒
    • 在资源商店中下载天空盒
    • 总结

了解和设置默认的天空盒

在新建一个 Unity3D 项目之后,我们在空空如也的场景下看到的那蓝灰过渡的画面,其实就是 Unity3D 默认提供的“天空”,这个机制叫“天空盒”(Skybox)。

你可以在 Window->Rendering->Lighting Settings窗口->渲染->照明设置)中打开当前场景的照明设置,里面可以设置天空效果。

Lighting Settings

照明设置

如下图就是默认天空盒提供的各种参数:

默认天空盒

Unity 新建项目时默认的天空盒是程序天空盒(Procedural Skybox)。一般来说程序天空盒提供了众多可以设置的参数,用来后期调节天空的样式。

默认的天空盒其实一个参数都不能直接设置,但可以通过其他游戏物体来间接设置。例如,你试试把一开始的那个定向光(Directional Light)调一下方向,你会发现默认天空中的太阳位置也变化了,跟着定向光的方向变化。

调节定向光的方向

如果你删过这个定向光,也可以通过新建一个到场景中,然后在上图的界面里面点击选择按钮把刚刚新建的定向光选中来再次创建太阳。

选择太阳源

在资源商店中下载天空盒

作为入门的话,可以考虑在资源商店中搜索并使用大神们做好的现成的天空盒(关键词 Skybox):

在资源商店中搜索天空盒

找到喜欢的天空盒后,点击 Download->Import 可以导入到当前的项目中。这里提一点,商店中的大部分资源,导入到项目中后都在 Assets 目录下。

Download -> Import

等待下载并导入完后,你可以看到最终导入的窗口:

导入窗口

在这个最终的窗口中,点击右下角的“导入”即可最终添加到项目中。

在这里,你可以注意到导入的资源中包含 back front top bottom left right 这些图片。这其实是另一种天空盒——六面天空盒(6 Sided Skybox)。(请原谅上图作者中那奇怪的缩写,因为这名字不重要。)

我把刚刚下载的这款天空盒的六个面分别贴出来,就会像下图这样:

天空盒的六个面

我简单做了个动图,用来直观观看天空盒的贴图:

在这里插入图片描述

依然在 Window->Rendering->Lighting Settings窗口->渲染->照明设置)中打开当前场景的照明设置,然后点击选择“天空盒材质”,选择刚刚我们下载的“sky,startday”。于是,我们的场景就应用了商店下载下来的天空盒了。

应用商店中的天空盒

像这种六面天空盒,虽然依然可以设置太阳源,不过已经不再关联到天空中的太阳的位置了。

总结

本文没有介绍如何制作一个自己的天空盒,因为我也正在学习中。不过我们了解到:

  • 如何下载并应用一个现成的天空盒
  • 天空盒的种类(六面天空盒、程序天空盒)

我的博客会首发于 https://blog.walterlv.com/,而 CSDN 会从其中精选发布,但是一旦发布了就很少更新。

如果在博客看到有任何不懂的内容,欢迎交流。我搭建了 dotnet 职业技术学院 欢迎大家加入。

知识共享许可协议

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名吕毅(包含链接:https://walterlv.blog.csdn.net/),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系。

相关文章:

  • Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件
  • Unity3D 入门:最简单的控制视角,以及控制角色前进、转向的脚本
  • 比较 Windows 上四种不同的文件(夹)链接方式(NTFS 的硬链接、目录联接、符号链接,和大家熟知的快捷方式)
  • 了解 Windows Linux 下命令行 Shell 启动程序传参的区别,这下不用再担心 Windows 下启动程序传参到 Linux 下挂掉了
  • 适合 .NET 开发者用的 GitHub Actions(时不时更新)
  • 在 CMD 里根据进程名杀掉进程
  • 在 PowerShell 里根据进程名杀掉进程
  • 在制作多框架项目的 NuGet 包时应该注意的问题(buildMultiTargeting TargetFrameworks)
  • 专业团队:推荐一个网站,生成巨幅文字注释
  • .NET 将多个程序集合并成单一程序集的 4+3 种方法
  • 通过设置启用 Visual Studio 默认关闭的大量强大的功能提升开发效率
  • 使用 SetWindowCompositionAttribute 来控制程序的窗口边框和背景(可以做 Acrylic 亚克力效果、模糊效果、主题色效果等)
  • input 不能为空 js_我用JS刷LeetCode | Day 9 | Implement strStr()
  • 宝塔同时安装苹果cms海洋cms_maccms安装了后接下来做什么?
  • hive 修改表的存储格式_Hive存储格式
  • IE9 : DOM Exception: INVALID_CHARACTER_ERR (5)
  • 08.Android之View事件问题
  •  D - 粉碎叛乱F - 其他起义
  • Docker容器管理
  • emacs初体验
  • ES6 学习笔记(一)let,const和解构赋值
  • HTML中设置input等文本框为不可操作
  • Java反射-动态类加载和重新加载
  • MySQL的数据类型
  • php的插入排序,通过双层for循环
  • Python连接Oracle
  • 阿里研究院入选中国企业智库系统影响力榜
  • 程序员最讨厌的9句话,你可有补充?
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 关于List、List?、ListObject的区别
  • 聊一聊前端的监控
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 入门级的git使用指北
  • 腾讯大梁:DevOps最后一棒,有效构建海量运营的持续反馈能力
  • 微信开放平台全网发布【失败】的几点排查方法
  • 我看到的前端
  • 【运维趟坑回忆录 开篇】初入初创, 一脸懵
  • FaaS 的简单实践
  • #Java第九次作业--输入输出流和文件操作
  • #单片机(TB6600驱动42步进电机)
  • #我与Java虚拟机的故事#连载09:面试大厂逃不过的JVM
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (3)(3.5) 遥测无线电区域条例
  • (3)选择元素——(17)练习(Exercises)
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (附源码)ssm失物招领系统 毕业设计 182317
  • (附源码)计算机毕业设计SSM疫情下的学生出入管理系统
  • (转)关于多人操作数据的处理策略
  • *++p:p先自+,然后*p,最终为3 ++*p:先*p,即arr[0]=1,然后再++,最终为2 *p++:值为arr[0],即1,该语句执行完毕后,p指向arr[1]
  • .NET Core 和 .NET Framework 中的 MEF2
  • .NET Core跨平台微服务学习资源
  • .NET 的静态构造函数是否线程安全?答案是肯定的!
  • .Net下C#针对Excel开发控件汇总(ClosedXML,EPPlus,NPOI)
  • .net中调用windows performance记录性能信息