- 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
 koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                