如何在第二个位置更改 material?
How to change material on second position?
我想在位置 2 上更改 material,当我在我的代码中更改 material 时,它在位置 0 而不是位置 1 上更改。
我不知道如何在位置 1 上更改 material ..这是在位置 [0]
上更改 material 的代码
public Material[] materials;
public Renderer rend;
// Start is called before the first frame update
void Start()
{
rend= GetComponent<Renderer>();
}
// Update is called once per frame
void Update()
{
rend.material = materials[1];
}
我想在这张图片上更改 material 名称为新 Material 2
到我在代码中定义的material。
非常感谢社区:)
它在索引 0 而不是索引 1 上发生变化,因为您使用的是 rend.material 而不是 rend.materials
public class MaterialChanger : MonoBehaviour {
public Material[] Materials;
public MeshRenderer MeshRenderer;
void Start() {
MeshRenderer = gameObject.GetComponent<MeshRenderer>();
}
void Update() {
int requredMaterialIndex = 1; //this is just test value
MeshRenderer.materials[1] = Materials[requredMaterialIndex];
}
我建议您始终使用 Meshrenderer 而不是 Renderer 只是为了提高效率
我想在位置 2 上更改 material,当我在我的代码中更改 material 时,它在位置 0 而不是位置 1 上更改。
我不知道如何在位置 1 上更改 material ..这是在位置 [0]
上更改 material 的代码 public Material[] materials;
public Renderer rend;
// Start is called before the first frame update
void Start()
{
rend= GetComponent<Renderer>();
}
// Update is called once per frame
void Update()
{
rend.material = materials[1];
}
我想在这张图片上更改 material 名称为新 Material 2 到我在代码中定义的material。
非常感谢社区:)
它在索引 0 而不是索引 1 上发生变化,因为您使用的是 rend.material 而不是 rend.materials
public class MaterialChanger : MonoBehaviour {
public Material[] Materials;
public MeshRenderer MeshRenderer;
void Start() {
MeshRenderer = gameObject.GetComponent<MeshRenderer>();
}
void Update() {
int requredMaterialIndex = 1; //this is just test value
MeshRenderer.materials[1] = Materials[requredMaterialIndex];
}
我建议您始终使用 Meshrenderer 而不是 Renderer 只是为了提高效率