unity中mask怎么实现对特效的遮挡

unity中mask怎么实现对特效的遮挡,第1张

其实是利用UI层的Mask实现遮罩,有些不同的是Mask的图片是用Camera渲染到RenderTexture动态产生的纹理实现的。

大概步骤如下:

1 分层渲染,建立Mask蒙版层。

2 河流设置为Mask层。

3 建立Mask Camera,只渲染Mask蒙版层

4 创建脚本MatchScreenRenderTexture,创建与窗口匹配的RenderTexture,令Mask Camera渲染到该RenderTexture中。

5 创衡游建脚本MaskScript,建立一个MaskShader(类似于全屏特效),令MaskCamera渲染的颜色部分背景部分透明变成不透明,即反转Alpha。

6 建立磨敏UI Image。设置Image为窗口大小,设置使用MatchScreenRenderTexture中的蒙版纹理。

7 添加Mask组件,令Image遮罩住船精灵的部瞎拦枝分。

ImageEffect MaskScript:

[csharp] view plain copy

using UnityEngine

using System.Collections

[ExecuteInEditMode]

背景画布,子画面和前景画布,并且背景画布应位于所有东西(包括子画面)的后面。

想法是首先使用一台摄像机仅渲染背景,然后使用另一台摄像机渲染所有东西。

为此,应该:

为背景画布添加一个图层。将背景画布层和子级更改为该层。

要添加层,请选择任何gameObject,然后在检查器的顶部看到:单击标记为“层”的下拉列表,然后选择“添加层”。

然后创建新图层并为其命名:选择背景画布,并为其及其子级更改图层。 添加游戏对象时,请记住,如果将它们添加到背景画布中,则它们的层必须与画布层相同,否则它们将被错误的相机渲染。

在主相机的剔除蒙版中禁用该图层。

现在,相机不应再呈现背景用户界面,它将在游戏视图中消失。

添加用于渲染背景用户界面的摄像头。

深度较高的摄像机会在深度较小的摄像机的顶部渲染,因此我们应将其深度设置为小于主摄像机的深度。我们还应该将其剔除蒙版设置为仅用于背景UI的图层,否则场景顷吵中的所有对象将被渲染两次。 从主摄像机复制其他设置。 将主摄像机的清除模式设置为“不清仔运除或仅深度” ,以防止其擦除背景。

将背景画布的模式设置为“屏幕空间-相雀戚侍机”,然后将新创建的相机拖到此处的“渲染相机”字段中。

你可以先随便创建一个NGUI控件,然后就会自动生成uicamera,然庆闷后再uicamera的码差键核心组件那,右迟巧键选择copy component,然后到主摄像机,右键paste component as new 就添加好了


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11975607.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存