- Home /
gameobject.renderer.material.color get null reference
I want to sample the material color of matchcube
and apply it to somequad
. matchcube
have its own c#
script to control some dynamic value. I have this code:
GameObject somequad = GameObject.Find("quad1");
GameObject matchcube = GameObject.Find("cube1");
Color thiscolor = matchcube.renderer.material.color;///<--this cause the problem!
somequad.renderer.material.color = thiscolor;
And I am getting an null reference. But I had done this before and it did not give me any error. Any idea what I had done wrong?
Or should I make the renderer.material.color public? if there is a way?
Check the value of the 'matchcube' after the Find(). $$anonymous$$ake sure that the game object is really named 'cube1' not some other name like 'Cube1'. Also make sure that the object with this name is not an empty game object. Verify there is only one game object with the name 'cube1' in the scene.
I just check, the name have no problem. By the way, matchcube is a prefab object. Would that be the case?
GameObject.Find() will only find object active in the scene. If you instantiated the object, then the name will have 'clone' appended, which will also cause you an issue with finding.
I think your shader doesn't have any color property, that also causes an error. Once check with that.
Answer by vvkkumar06 · May 26, 2014 at 06:58 AM
You have instantiated your gameObject then do something like
GameObject matchcube = GameObject.Find("cube1(Clone)");
I hope it will work.
Your answer
Follow this Question
Related Questions
Changing two different objects renderer colour 1 Answer
Need material.color to revert. 3 Answers
Accessing GameObjects Color To Store In Variable 1 Answer
Changing the color at runtime is causing my material to look very different. 1 Answer
Pixel perfect in 3D -> Overlapping areas have mixed colors 1 Answer