美文网首页
使用Unity后期特效PostProcessing,代码动态添加

使用Unity后期特效PostProcessing,代码动态添加

作者: AngerCow | 来源:发表于2019-09-29 10:00 被阅读0次

    我们项目使用Unity自带后期效果组件:PostProcessing。我在运行中代码动态添加了PostProcessLayer组件后就不停报错。代码与报错如下:


    代码
    报错

    让我们看看源码


    PostProcessLayer源码
    我们手动在编辑器里添加PostProcessLayer再运行就不会报错了,Init里的Resource不为空,运行中添加的PostProcessLayer组件Init里的Resource是空的。说明我们有没有初始化到数据。
    我们再看下PostProcessLayer组件资源
    PostProcessLayer组件资源.png

    这里我们可以看到,Resources这个是序列化的文件。也就是说可能动态添加组件时,这里的值可能是空的。
    通过断点,证明了猜测是对的。在代码里也找到相关注释:


    注释.png
    最后这个资源还是没办法运行时获取,最后我只能把这个序列化文件放在可加载路径,通过加载序列化文件,然后再调用一次Init()传入。最后的代码如下:
    解决后的代码
    致此,问题算是解决了,可是这应该不是最好的办法,希望大家有更好的办法请指正一下我。

    相关文章

      网友评论

          本文标题:使用Unity后期特效PostProcessing,代码动态添加

          本文链接:https://www.haomeiwen.com/subject/ufljuctx.html