如何从脚本更改着色器的“BaseMap”属性?- 通用RP模板

Beh*_*ahi 3 c# unity-game-engine

我曾经BaseMap使用统一的标准 3D 项目来更改纹理,如下所示:

[SerializeField] private Texture texture;

void Start()
{
    this.GetComponent<Renderer>().material.mainTexture = texture;
}
Run Code Online (Sandbox Code Playgroud)

但是,相同的代码似乎无法使用Universal RP Template. 当我检查着色器属性时,它显示该BaseMap属性已过时,如下图所示:

着色器过时属性

但是当我在运行时将纹理拖放到 时BaseMap,它就可以工作了。我想这意味着它应该有效。(下图):

底图纹理在运行时发生变化

我现在的主要问题是,如何更改BaseMap脚本中的纹理Universal RP Template

除了BaseMap着色器上写的BaseMap“ObsoletProperties”之外,我还应该调用并更改它们的纹理吗?还有其他属性吗?

Men*_*yus 9

更新,这应该可以解决问题:

[SerializeField] private Texture texture;

void Start()
{
    GetComponent<Renderer>().material.SetTexture("_BaseMap", texture);
}
Run Code Online (Sandbox Code Playgroud)