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
{/// /// 空后期处理(没有处理的后期处理)/// /// /// 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
上一篇:每日学术速递3.13
下一篇:C语言中有关取模和取余的问题