【发布时间】:2021-07-02 15:01:46
【问题描述】:
目标
我创建了一个在材质“TestMaterial”中使用的着色器图。 我有一个带有精灵渲染器组件的游戏对象,该组件具有默认材质属性。
在运行时,当用户单击一个简单按钮时,我想用我的新材质“TestMaterial”更改我的游戏对象 > Sprite 渲染器 > 材质属性“默认”。
上下文
我使用通用渲染管道和 Unity 2019.4.12.f1。 在我使用功能编辑 > 渲染管道 > 通用渲染管道 > 2D 渲染器 > 将项目更新为 2d 渲染器之前,我的代码运行良好。
我做的测试 当我的游戏对象直接使用此材料时,我的“TestMaterial”在编辑器和运行时都可以正常工作。 “TestMaterial”只有在我更新脚本中的材质时才起作用,我的游戏对象保留旧的默认材质。
代码
[SerializeField] Material testMaterial;
[SerializeField] Material defaultMaterial;
public void UpdateToDefaultMaterial()
{
this.gameObject.GetComponent<SpriteRenderer>().material = defaultMaterial;
}
public void UpdateToTestMaterial()
{
this.gameObject.GetComponent<SpriteRenderer>().material = testMaterial;
}
截图 Unity Editor
【问题讨论】:
标签: unity3d shader-graph urp