当前位置:首页 >教程首页 > 游戏程序 > Unity3D游戏开发工程师班 >Unity 3D实用技巧教你如何将Game视图调到全黑

Unity 3D实用技巧教你如何将Game视图调到全黑

发布时间:2019-11-18 08:59:10

今天给大家分享Unity 3D 实用技巧教你如何将Game视图调到全黑,我是木偶心没,一起来看下吧!

Unity默认场景里面的Lighting设置是由很多个部分的光源设置组成的,所以我们通过将Game视图调到全黑来分解一些unity里面的灯光。

1、将Scene视图背景调到全黑

打开或者新建一个项目,然后选择Windows>Rendering>LightingSettings。

1-1.webp.jpg

Scene的背景之所以是蓝色的,是因为添加了默认的天空盒子,所以我们需要将Skybox material改成None,即不加天空

1-2.webp.jpg

然后就会注意到现在天空已经变成了灰色,但并不是我们想要设置的黑色。所以我们还需要在设置里面调节一下Background的颜色(注意这个设置对整个项目scene起作用)

Edit>Preferences

1-3.webp.jpg

1-4.webp.jpg

现在观察到的Scene整个背景颜色就变成了黑色

1-5.webp.jpg

2、将Game视图背景调至全黑

上面操作将我们的Scene视图背景颜色调成了黑色,但是当切换到Game的时候,发现背景并没有像Scene一样变成黑色,而是蓝色

2-1.webp.jpg

这是因为Game呈现的是camera里面的场景,所以在camera里面还有一个颜色设置。

选中场景的camera,然后在属性面板中将Clear Flags改成Solid Color固定颜色(实际上默认Skybox也行,因为场景中已经没有了Skybox),Background的颜色改成黑色。

2-2.webp.jpg

这样就可以看到Game视图的背景也变成了纯黑色。

3、环境光Environment Lighting

为了方便观察,我们给场景加两个box,并且错开位置。

3-1.webp.jpg

观察上面那块板的底面的颜色以及下面那块板上的阴影颜色

3-2.webp.jpg

如果阴影在摄像机拉到一定距离就看不到,需要修改shadow的distance。

Edit>Project Settings>Quality

3-3.webp.jpg

然后找到Shadows,增加ShadowDistance的值

3-4.webp.jpg

这两块板上面反射的颜色实际上是skybox天空和地面的颜色辐射。虽然我们在此之前是关掉了场景里面的skybox的,但是在我们的lighting的设置中,Environment Lighting的设置还是默认的skybox。

所以如果添加了默认的skybox,然后将Environment Lighting的Intensity Multiple调到0,这个时候不管你添加何种天空球skybox,都不会对box的阴影造成任何影响。

3-5.webp.jpg

这个效果相当于将Source改为Color,然后将Ambient Color调成纯黑色。这个过程叫做关天光

3-6.webp.jpg

4、环境光反射Environment Reflection

但是如果此时切换到Game窗口的话,可以看到上面一块box的底部并不是想scene里面的纯黑。那是因为他还受到环境光反射Environment Reflection的影响

4-1.webp.jpg

我们继续将下面的Environment Reflection选择为Custom,就可以关掉环境光反射。然后就看到所有的阴影都变成了纯黑色。

4-2.webp.jpg

除了关闭Environment Reflection以外,还可以通过将box的smoothness的值调为0,这样得到的阴影颜色值也为0.

4-3.webp.jpg

创建一个新材质给上面的box,然后调节他的smoothness为0,就可以看到阴影同样变成了全黑。

但是这个办法得到并没有直接设置Environment Reflection的效果好。所以这里还是直接设置Environment Reflection为Custom,设置完成以后发现下面的box还有一部分没有变黑,那是场景里Directional Light的作用,所以我们选中它,然后将其强度调为0

4-4.webp.jpg

然后就得到了想要的全黑效果!!!

所以划重点总结:我们之所以能够看到场景中的物件,是通过调节camera,Environment lighting以及场景光的设置来完成的

来源:Thepoly 公众号

学员作品赏析
  • 2101期学员李思庭作品

    2101期学员李思庭作品

  • 2104期学员林雪茹作品

    2104期学员林雪茹作品

  • 2107期学员赵凌作品

    2107期学员赵凌作品

  • 2107期学员赵燃作品

    2107期学员赵燃作品

  • 2106期学员徐正浩作品

    2106期学员徐正浩作品

  • 2106期学员弓莉作品

    2106期学员弓莉作品

  • 2105期学员白羽新作品

    2105期学员白羽新作品

  • 2107期学员王佳蕊作品

    2107期学员王佳蕊作品

专业问题咨询

你担心的问题,火星帮你解答
  • java和游戏开发哪个好就业

    在计算机编程领域,Java是一种广泛使用的编程语言之一,而游戏开发也是一项充满激情和挑战的行业。很多同学为此陷入了纠结,不知道......

  • java可以做游戏开发吗

    Java是一种强大的编程语言,具有面向对象编程的特性,提供的许多库和框架,而且也应用在游戏开发之中,所以就有很多同学想要知道,......

  • 游戏开发用的最多的编程语言

    游戏开发用的编程语言有很多种的,比如说说C++、C#、Java、HTML、Python、Lua、CUDA-C、JavaScri......

  • 游戏测试与软件测试的区别

    游戏测试和软件测试虽然有很多相似之处,但也存在一些明显的区别。本文将简要阐述这些区别,并探讨在选择学习方向时的考虑因素。

  • 游戏测试需要掌握什么技能?

    游戏测试是游戏开发过程中必不可少的一环,它的重要性不容忽视,能够检测其中可能存在的问题和缺陷,并提出改进方案,以保证游戏的质量......

  • 游戏软件测试主要是做什么的?

    随着游戏市场的不断扩大和游戏产业的不断发展,游戏软件测试也在不断发展。然而,很多人听过游戏软件测试,却不知道它是干什么的,今天......

×