- Home /
Renderer.material assignment not working
I have a fairly simple question: I am trying to change an object's material via code with the line
rend.material = NewMat;
where rend
is of type Renderer
(`MeshRenderer` to be specific) and NewMat
is of type Material
. Both variables are public and assigned in the inspector and both are not null.
When I now try to assign the material, nothing happens. I don't event get any error. When I look into the inspector I can see that under Materials on my MeshRenderer the material doesn't even change. The line
Debug.Log(rend.material == NewMat);
outputs false
.
What am I doing wrong?,I have a fairly simple question: I am trying to change an object's material via code with the line
rend.material = NewMat;
where rend
is of type Renderer
(`MeshRenderer` to be specific) and NewMat
is of type Material
. Both variables are public variables with values assigned in the inspector and both are not null
.
When I now try to assign the material, nothing happens. I don't event get any error. When I look into the inspector I can see that under Materials
on my MeshRenderer
the material doesn't even change. The line Debug.Log(rend.material == NewMat);
outputs false
.
What am I doing wrong?
Answer by bakir-omarov · Jun 10, 2018 at 05:28 PM
It is 100% working script, just see what you did wrong: P.S don't forget to add Material from project folder to your sript's newMaterial in Unity Editor!
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[RequireComponent(typeof(Renderer))]
public class UnityAnswers_MaterialChanger : MonoBehaviour {
public Material newMaterial; // drag here material from project folder in Unity Editor
// Update is called once per frame
void Update () {
// Press SPACE for changing material
if (Input.GetKeyDown(KeyCode.Space))
{
Debug.LogWarning("Hey, i cahnged material to new one!");
GetComponent<Renderer>().material = newMaterial;
}
}
}
Your code should probably work for him otherwise, He must have missed something up.
Your answer
Follow this Question
Related Questions
Swapping out a single material on a SkinnedMeshRenderer at runtime 0 Answers
Changing two different objects renderer colour 1 Answer
How to check whether a lot of components and their children have a mesh renderer on them in code? 1 Answer
How do I change the material of a prefab when it is not in the hierarchy? 0 Answers