开发环境

Unity:2021.1.14flc1
导入Package:
AR Foundation:4.1.7
ARCore XR Plugin:4.1.7

AROcclusionManager

用于管理遮挡系统

是AR Camera的组件

android 半遮挡界面 安卓遮挡软件_unity

currentEnvironmentDepthMode

android 半遮挡界面 安卓遮挡软件_官网_02

public EnvironmentDepthMode currentEnvironmentDepthMode { get; }

用于获取当前环境深度测试的模式

对应的取值有

android 半遮挡界面 安卓遮挡软件_取值_03


翻译下来就是从Disabled -> Fastest -> Medium -> Best依次为

不开启 -> 低分辨率-> 中等分辨率 -> 高分辨率 的环境深度测试设置

currentOcclusionPreferenceMode

获取系统正在使用的当前遮挡首选项模式

android 半遮挡界面 安卓遮挡软件_android 半遮挡界面_04

public OcclusionPreferenceMode currentOcclusionPreferenceMode { get; }

其取值为:
PreferEnvironmentOcclusion :首选使用环境深度进行遮挡。
PreferHumanOcclusion:首选使用人体分割模板和深度进行遮挡。

步骤

在AR Camera中加入 AR Occlusion Manager的组件

并将Environment Depth Mode开启(选择Fastest、Medium或Best)

即可以启动最基本的遮挡效果

这里我创建了一个球体,在系统初始位置也就是Position(0,0,0)的位置观察遮挡效果

android 半遮挡界面 安卓遮挡软件_官网_05

测试结果

android 半遮挡界面 安卓遮挡软件_unity_06


这里可以看到遮挡的边缘还是需要进一步优化得到更好的效果

一些说明

对ARFoundation的使用学习可以参考unity官网的文档:http://docs.unity3d.com/Packages/com.unity.xr.arfoundation@4.1/manual/index.html。也可以到ARCore的官网:https://developers.google.cn/ar对这部分SDK的功能和环境配置有个更好的了解。
(两个网站的中文翻译我觉得都挺令人头疼的,看不懂的部分地方建议可以用英文文档理解一下。)