Unity Legacy Shader 如何从脚本更改贴花
Unity Legacy Shader how to change decal from script
这就是我正在使用的,但我在网上找不到任何关于如何更换贴花的信息。
假设我有多个纹理,例如(Tex1、Tex2、..等)。
- 如何在脚本中访问 _DecalTex 以便分配不同的纹理?
- 就像选择按钮 Change _DecalTex == Tex2 一样,应该有一些我不知道或尚未找到的简单方法,任何帮助或链接都会有帮助谢谢:)
如果您查看 LegacyShaders/Decal
(state Unity 2017.2)的源代码,您会看到您要更改的 属性 称为 _DecalText
Shader "Legacy Shaders/Decal"
{
Properties
{
_Color ("Main Color", Color) = (1,1,1,1)
_MainTex ("Base (RGB)", 2D) = "white" {}
_DecalTex ("Decal (RGBA)", 2D) = "black" {}
}
...
}
您可以简单地使用 material.SetTexture
进行设置
material.SetTexture("_DecalTex", texture);
例如喜欢
public class Example : MonoBehaviour
{
// reference in the Inspector
public Texture texture;
private void Start()
{
var renderer = GetComponent<MeshRenderer>();
var material = renderer.material;
material.SetTexture("_DecalTex", texture);
}
}
这就是我正在使用的,但我在网上找不到任何关于如何更换贴花的信息。
假设我有多个纹理,例如(Tex1、Tex2、..等)。
- 如何在脚本中访问 _DecalTex 以便分配不同的纹理?
- 就像选择按钮 Change _DecalTex == Tex2 一样,应该有一些我不知道或尚未找到的简单方法,任何帮助或链接都会有帮助谢谢:)
如果您查看 LegacyShaders/Decal
(state Unity 2017.2)的源代码,您会看到您要更改的 属性 称为 _DecalText
Shader "Legacy Shaders/Decal"
{
Properties
{
_Color ("Main Color", Color) = (1,1,1,1)
_MainTex ("Base (RGB)", 2D) = "white" {}
_DecalTex ("Decal (RGBA)", 2D) = "black" {}
}
...
}
您可以简单地使用 material.SetTexture
material.SetTexture("_DecalTex", texture);
例如喜欢
public class Example : MonoBehaviour
{
// reference in the Inspector
public Texture texture;
private void Start()
{
var renderer = GetComponent<MeshRenderer>();
var material = renderer.material;
material.SetTexture("_DecalTex", texture);
}
}