Unity 问题 之 UGUI 的 Mask 真机打包的遮罩效果失效问题的简单处理

Unity 问题 之 UGUI 的 Mask 真机打包的遮罩效果失效问题的简单处理

一、简单介绍

Unity 问题整理,自己整理的一些游戏开发遇到的问题做简单整理,方便游戏开发。

本节介绍,在使用 cardboard 做 XR 开发中,在使用 Mask  遮罩的时候,编辑器下 Mask 的 遮罩效果正常,但是运行到真机上,Mask 的遮罩效果却失效了,这里简单说明,如果你有更好的方法,欢迎留言交流。

二、问题背景

1、UI 组件上添加 Mask  组件

2、Mask 效果

 三、问题现象

1、真机上效果,Mask 遮罩效果失效

 四、解决方案

1、可能是 Disable Depth and Stencil 勾选了建议可以把勾选去掉,打包测试下看看

2、如果上面没有解决掉的话,可以在 Camera 上挂载一个空的后期处理,让系统自己做一下 stencil 修复

其中,NoEffectPostProcess.cs 代码为:

using UnityEngine;

[RequireComponent(typeof(Camera))]
public class NoEffectPostProcess : MonoBehaviour
{
    /// <summary>
    /// 空后期处理(没有处理的后期处理)
    /// </summary>
    /// <param name="source"></param>
    /// <param name="destination"></param>
    private void OnRenderImage(RenderTexture source, RenderTexture destination)
    {
        Graphics.Blit(source, destination);
    }
}

3、如果上面的问题还有的解决,那就使用其他的遮罩,代替 Mask ,例如使用 SoftMask代替 Mask

SoftMask 使用介绍:Unity 工具 之 SoftMask软遮罩 实现 UI 边缘渐变过渡的简单使用介绍_unity 渐变遮罩

 4、或者使用 Rect Mask 2D 解决方案

(Rect Mask 2D 是 渐变边缘的遮罩,不一定能满足各种需求)

 

参考资料

1、Unity Mask 遮罩无效 解决方案_unitysoftmask

猜你喜欢

转载自blog.csdn.net/u014361280/article/details/129485729
今日推荐