Runtime change texture

Hi guys,

I have a character loaded in my project - a normal guy walking, sitting, whatever. I added it by dragging into the hieararchy. It’s fine, the mesh is rendered nicely.

What I want is to runtime, image when I press a button, to change the texture, more specifically change the color of the material. How do I access the damn thing? And for more difficult question, can I change the texture, how?

Thanks a lot!
Paulo

You can do several things… If you just want to tint the existing material a different color, use:

NormalGuy.renderer.material.color = new Color;

This is the same as adjusting the Main Color in the inspector. It should be non-white to start with, I prefer defaulting all my colors to 50% gray, so I can shift that color both light and dark.

You can just swap out materials with this line:

NormalGuy.renderer.material = NewMaterial;

You should have a material to shift to already defined.

You can swap out the texture like this:

NormalGuy.renderer.material.mainTexture = newTexture;

It’s pretty simple, once you know how…

You can access the materials of your character through the renderer attached to your character. If there are multiple materials, use the materials array and specify which material by array #, heres an example.

var myCharacter:Transform;

function Update()
{
    if(Input.GetButtonUp("c"))
    {
        myCharacter.renderer.materials[0].color=Color.black;
        myCharacter.renderer.materials[1].mainTexture=someTexture;
    }
}

Oh, I found the problem. The rendered is set to the pelvis of my character. Now it works!