Unity项目打包到移动平台丢失Shader,错误描述:ArgumentNullException: Value cannot be null. Parameter name: shader

Unity项目打包到移动平台丢失Shader

问题描述

    在将Unity中的项目打包生成到UWP平台后,运行时出现错误:ArgumentNullException: Value cannot be null. Parameter name: shader

产生原因

    在Unity中,Shader是从代码中进行加载的,编辑器中并没有引用。在编辑器中运行项目没有问题,但当项目发布到移动平台,如ios、android、UWP之后,游戏中并不能找到对应的shader。因为Shader在场景中并未被引用,所以没有被打包。

解决方法

在GraphicsSettings中添加上此shader:

  1. 选择Edit->ProjectSettings->Graphics:
    在这里插入图片描述
    在Always Included Shaders数组中,更改size,并将所需用到的Shader拖入其中:
    在这里插入图片描述