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?

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;
        }
	}
}