PostProcess报错解决方案

先看一下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初始化完之后,再启用,就再也不会报错了

猜你喜欢

转载自blog.csdn.net/HelloCSDN666/article/details/124758515