开头很简单,最难的是坚持。|

陈侠云

园龄:2年10个月粉丝:1关注:1

Unity Camera组件ClearFlags属性介绍以及区分UI摄像机和角色摄像机

在Unity中,Camera.clearFlags 属性用于定义相机在渲染场景之前如何清除屏幕。这个属性有几个不同的选项,每个选项都会以不同的方式清除屏幕。具体选项如下:

  • Skybox:

如果相机有分配的天空盒(Skybox),在渲染场景之前将用天空盒来清除屏幕。
如果没有分配天空盒,则使用纯色来清除屏幕,颜色为背景色(background color)。

  • Solid Color:

在渲染场景之前将屏幕清除为指定的纯色,这个颜色是通过相机的背景色属性(background color)设置的。

  • Depth Only:

仅清除深度缓冲区(Depth Buffer),不清除颜色缓冲区(Color Buffer)。
这种模式通常用于后处理效果(post-processing effects)或叠加多个摄像机的渲染结果。

  • Don't Clear:

不清除颜色缓冲区和深度缓冲区。
通常用于对屏幕内容进行多次渲染操作,例如绘制叠加的UI元素或效果。


开发中,我们常常需要区分UI摄像机和角色摄像机,我的做法分享记录一下:

设置相机渲染顺序

你需要确保两个相机按正确的顺序渲染。通常情况下,你希望UI相机在2D角色相机之后渲染,以确保UI显示在前景。

配置UI相机

UI相机通常只需要渲染UI层,并且可以使用Depth Only或Don't Clear清除标志。

步骤:

  1. 创建一个新的相机并命名为UICamera。
  2. 设置 UICamera 的 clearFlags 属性为 Depth Only。
  3. 设置 UICamera 的 cullingMask 只包括 UI 层。你可以通过层选择器只选择 UI 层。
  4. 设置 UICamera 的 depth 属性为一个较高的值,比如1,这样它会在2D角色相机之后渲染。
配置2D角色相机

2D角色相机需要渲染场景中的角色和背景,可以使用 Solid Color 或 Skybox 作为清除标志。

步骤:

  1. 创建一个新的相机并命名为CharacterCamera。
  2. 设置 CharacterCamera 的 clearFlags 属性为 Solid Color 或 Skybox,根据你场景的需求。如果使用 Solid Color,你可以设置一个背景颜色。
  3. 设置 CharacterCamera 的 cullingMask 包括所有与角色和背景相关的层,但不包括UI层。
  4. 设置 CharacterCamera 的 depth 属性为0(默认值),确保它在UI相机之前渲染。
  5. 设置层和标签
  6. 确保你的2D角色和背景对象属于正确的层,而UI元素属于UI层。这有助于相机根据 cullingMask 正确地渲染对象。
设置层和标签

确保你的2D角色和背景对象属于正确的层,而UI元素属于UI层。这有助于相机根据 cullingMask 正确地渲染对象。

本文作者:陈侠云

本文链接:https://www.cnblogs.com/chenxiayun/p/18245561

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   陈侠云  阅读(331)  评论(0编辑  收藏  举报
//雪花飘落效果
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起