我正在尝试设置着色器图形 Material 的纹理,但没有运气。在遵循一些教程和一些谷歌搜索后,我似乎无法让它工作。
到目前为止,我已经使用通过代码生成的飞机和预构建的飞机设置了场景,并将 Material 应用于这两个飞机。然后我创建了一个脚本来将 MeshRenderer 的纹理设置为“_MainTex”,正如我在谷歌搜索时多次看到的那样。我还将 Material 纹理属性设置为“_MainTex”。
我也尝试了引用名称,但也不起作用。
那么如何通过代码使用通用渲染管道设置着色器图形 Material 的纹理?
游戏中的两架飞机:
预制飞机的检查员:
着色器图:
脚本:
void Start()
{
GetComponent<MeshRenderer>().material.SetTexture("_MainTex", new TextureGenerator().GenerateNoiseTexture(256, 256));
}
最佳答案
您需要填写此属性的“引用”部分。
它可以在图形检查器 -> 节点设置中找到。 (通常位于 ShaderGraph 的右上角)
请务必将“Texture2D_234E865”更改为“_MainTex”。通过单击着色器并在检查器中查看来验证保存的资源。在“属性”下,它应该列出 _MainTex。然后,您可以使用 SetTexture 代码或简单地调用 material.mainTexture,它会执行相同的操作。
关于unity-game-engine - 如何使用 URP 通过脚本设置着色器图形 Material 的纹理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60793807/