I have a simple model I want to change its materials from a list. The jump button should change next material while the fire button should change to previous material used. Here’s the (not doing so well) code:
var myMaterials : Material[];
var NextMaterial : int = 0;
var PreviousMaterial : int = 0;
function NextMaterialUsed()
{
renderer.sharedMaterial = myMaterials[NextMaterial];
if(NextMaterial < myMaterials.length-1)
NextMaterial += 1;
else
NextMaterial = 0;
}
function PreviousMaterialUsed()
{
renderer.sharedMaterial = myMaterials[NextMaterial];
if(PreviousMaterial < myMaterials.length-1)
PreviousMaterial += 1;
else
PreviousMaterial = 0;
}
function Update ()
{
if(Input.GetButtonDown("Jump"))
{
NextMaterialUsed();
}
if(Input.GetButtonDown("Fire1"))
{
PreviousMaterialUsed();
}
}
Can someone please give me some idea where I am doing it wrong? Thanks in advance!
And, it's custom practice to use lowerCase for first letter of variables, UpperCase for functions, to make it easier to distinguish (esp when sharing code)
– DaveAAlso, your PreviousMaterialUsed function still refers to the NextMaterial when assigning a material value, so using it would have no effect. I also imagine you wanted to decrement it instead of incrementing it as you did for NextMaterialUsed.
– sharat