unity-game-engine - 如何使用 URP 通过脚本设置着色器图形 Material 的纹理

标签 unity-game-engine

我正在尝试设置着色器图形 Material 的纹理,但没有运气。在遵循一些教程和一些谷歌搜索后,我似乎无法让它工作。

到目前为止,我已经使用通过代码生成的飞机和预构建的飞机设置了场景,并将 Material 应用于这两个飞机。然后我创建了一个脚本来将 MeshRenderer 的纹理设置为“_MainTex”,正如我在谷歌搜索时多次看到的那样。我还将 Material 纹理属性设置为“_MainTex”。

我也尝试了引用名称,但也不起作用。

那么如何通过代码使用通用渲染管道设置着色器图形 Material 的纹理?

游戏中的两架飞机:

The two planes

预制飞机的检查员:

The prebuilt plane's inspector

着色器图:

The shader graph

脚本:

void Start()
{
    GetComponent<MeshRenderer>().material.SetTexture("_MainTex", new TextureGenerator().GenerateNoiseTexture(256, 256));
}

最佳答案

您需要填写此属性的“引用”部分。

它可以在图形检查器 -> 节点设置中找到。 (通常位于 ShaderGraph 的右上角)

请务必将“Texture2D_234E865”更改为“_MainTex”。通过单击着色器并在检查器中查看来验证保存的资源。在“属性”下,它应该列出 _MainTex。然后,您可以使用 SetTexture 代码或简单地调用 ma​​terial.mainTexture,它会执行相同的操作。

关于unity-game-engine - 如何使用 URP 通过脚本设置着色器图形 Material 的纹理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60793807/

相关文章:

c++ - 尝试从 C 调用 ObjC 方法时出现链接器错误

java - 在java中检索cookieContainer内的数据

c# - 保护 C# 和 PHP 之间的通信(不是加密数据)

ios - unity IOS firebase 处理前台推送通知

unity-game-engine - Unity + Oculus Rift : show both eyes?

c# - 如何在继续之前等待 StartCoroutine() 完成

c# - 创建物体之间的时间距离统一

java - 如何将2个不同的项目放入一个APK中

ios - 构建 Unity 项目后如何修复 Xcode 中的 "Undefined symbols for architecture arm64:"错误?

c# - Debug.DrawLine 未显示在 GameView 中