- Home /
How would I change the color of a texture within an object with multiple textures?
I have a character made up of multiple meshes (torso, neck, head, upper arm, lower arm, etc...) and each of these meshes has anywhere from 1 to 4 different textures.
I have a few meshes which have a specific texture that I want to change the color of on each mesh that has it (but I don't want to change the global color, because there will be multiples of this character).
Right now my code works like this:
(At the moment, I'm using "GameObject.Find()" for testing purposes, but I will change this later)
var objectHead = GameObject.Find("Head");
objectHead.renderer.material.color = Color(RGB.x,RGB.y,RGB.z);
But for some reason, this only changes the very first texture (id 0) in the object's texture list. Is there any way to specify that I want to change the color of, say, the third texture (id 2) in the list?
I apologize if this is a dumb question, but this is my first time using Unity.
Answer by screenname_taken · Mar 19, 2014 at 10:01 PM
When you say multiple textures, you mean something like a diffuse, bump and the like? I know that to access the bump mapping you need to use _BumpMap, _Cube is for the reflection...
Like: renderer.material.SetTextureOffset ("_BumpMap", Vector2(offset,0)); (I wanted to be able to mess with the normal map.)
If you look into the shader code, you'll find at the start of the code the texture slots and how to call them.
Your answer
Follow this Question
Related Questions
Changing two different objects renderer colour 1 Answer
Material doesn't have a color property '_Color' 4 Answers
Are Mesh Filters Really Necessary? 1 Answer
Why isn't the color changing? 1 Answer
Material Color Won't Change On Input 1 Answer