UE 4.25中在Material Expression Custom中新加入的宏定义和Include文件路径,如下。
![2402dc01ae61ab0869880bfa80db996e.png](https://img-blog.csdnimg.cn/img_convert/2402dc01ae61ab0869880bfa80db996e.png)
预定义宏自然就是 #define (Define Name) (Define Value),其中Define Name和Define Value用填写的值替换,在Code里面就可以判断宏的值了。
Include文件路径相当于以前写在Code里面,现在搬出来了,让Code的职能更加纯粹一点。
不在Modules主动调用AddShaderSourceDirectoryMapping函数的情况下,Shader的寻找路径只能映射Engine文件夹下的,即 /Engine/Private/xxx.ush 或 /Engine/xxx.usf(此处的映射指的是只要检测到代码include shader文件,那么如果这个路径有/Engine/你的shader文件,就会自动替换成../../../Engine/Shaders/Private/你的shader文件)。
![8e680341a9f58f79e33043a9ceb7f4c8.png](https://img-blog.csdnimg.cn/img_convert/8e680341a9f58f79e33043a9ceb7f4c8.png)
想要添加其他映射路径参考原文的方法。
测试:
![07325f75d3f1cdd71e11a6269676b1e8.png](https://img-blog.csdnimg.cn/img_convert/07325f75d3f1cdd71e11a6269676b1e8.png)
查看Shader编译结果:
![0c71a69a852936ced7ff5f225916a976.png](https://img-blog.csdnimg.cn/img_convert/0c71a69a852936ced7ff5f225916a976.png)
---------------------------------以下原文----------------------------------
UE4.22版本中Material里的CustomExpressions想要引用自己的shader文件,如
![7c7cffb59669516ab370f4363ff35a19.png](https://img-blog.csdnimg.cn/img_convert/7c7cffb59669516ab370f4363ff35a19.png)
同时也确认了文件路径的正确性
![a02b4c3b4fe3c693131cb26df9d73417.png](https://img-blog.csdnimg.cn/img_convert/a02b4c3b4fe3c693131cb26df9d73417.png)
但是报错,原先“/Project”的Virtual Shader Source Path已经无法识别
![8fb09ba53400fdd53e7128b1055b18c4.png](https://img-blog.csdnimg.cn/img_convert/8fb09ba53400fdd53e7128b1055b18c4.png)
在论坛上找到解决方案(假定UE项目叫TestProject)
1.如果项目是从蓝图创建的,需要新建一个C++文件,进而打开VS项目。
2.VS中修改三个文件,TestProject.Build.cs TestProject.h TestProject.cpp(红框中为修改部分)
![96546362953afc3d0ee1744dacab1197.png](https://img-blog.csdnimg.cn/img_convert/96546362953afc3d0ee1744dacab1197.png)
![5de7bba66e1247a91c277d1d69acde39.png](https://img-blog.csdnimg.cn/img_convert/5de7bba66e1247a91c277d1d69acde39.png)
![0e23ab7bcaec7ed73cf38c07ff221701.png](https://img-blog.csdnimg.cn/img_convert/0e23ab7bcaec7ed73cf38c07ff221701.png)
3.找到项目本地根目录,关闭UE编辑器和VS,右键点击TestProject.uproject,点击生成VS项目文件,打开sln。
4.编译运行项目
![eea580026c6141f658153f2eab3fd6b4.png](https://img-blog.csdnimg.cn/img_convert/eea580026c6141f658153f2eab3fd6b4.png)
成功