先看一下PostProcess报的错
报错显示是AO的问题,我并没有使用AO,报错却一直在打印。这个问题困扰了我两个月,经过对文档的分析和外网资料的查找,我找到了原因,发现是有一个叫PostProcessResources的文件,如果这个PostProcess初始化这个文件失败,就会报上面的错误,所以我的解决方案是通过Resources.Load来加载这个文件,最终解决了这个问题。
先看一下这个文件的位置
再看一下赋值的代码
using UnityEngine;
using UnityEngine.Rendering.PostProcessing;
public class AddPostProcessVolume : MonoBehaviour
{
private PostProcessVolume postProcessVolume;
private void Start()
{
postProcessVolume = GetComponent<PostProcessVolume>();
if (postProcessVolume != null)
{
postProcessVolume.profile = QA.resourceMan.GetResource<PostProcessProfile>("postFile");
}
PostProcessLayer[] layerArr = FindObjectsOfType<PostProcessLayer>();
for(int i = 0; i < layerArr.Length; i++)
{
layerArr[i].Init(QA.resourceMan.GetResource<PostProcessResources>("PostProcessResources"));
layerArr[i].enabled = true;
}
}
}
场景中摄像机上的PostProcessLayer组件要默认关闭,在赋值了PostProcessVolume并且使用PostProcessResources初始化完之后,再启用,就再也不会报错了