- Home /
Is this the best approach for multiple costumes?
We're having unlockable outfits in our game, but the character is not customizable (so we don't need to worry about splitting the costumes into several pieces).
So I'm thinking the best approach is to ask my animator to create a basic nude mesh of the character, rig and animate that, and export the animations as a separate FBX file. Then he can model each different outfit as a new character, saving them as individual FBX files using the nude model as the basic template.
Does this sound like our best approach? I've seen a lot around the forums about storing all the costumes into one single FBX file and enable/disable each layer as needed, but this seems unnecessary and would result in a very large FBX file (especially as this is a mobile game). Maybe I'm missing something though?
Answer by kurotatsu · Jun 25, 2012 at 05:40 AM
In my game Voidkeepers I have one set of armor and use a material swap script.
Have another script call whichever material you want to change to(put this on the object you want to change materials on.).
See it in action here:Voidkeepers.
I don't usually do this, but here's the script:
var switchto = 0;
var material1 : Material;
var material2 : Material;
var material3 : Material;
var material4 : Material;
var material5 : Material;
var material6 : Material;
//--------------------------------------------------------------------------------------
function Material1(){
renderer.material = material1;
}
function Material2(){
renderer.material = material2;
}
function Material3(){
renderer.material = material3;
}
function Material4(){
renderer.material = material4;
}
function Material5(){
renderer.material = material5;
}
function Material6(){
renderer.material = material6;
}
That's ugly. Put them all in an array and use an index call.
var materials = new Array();
function Start() {
materials.push(material1);
materials.push(material2);
materials.push(material3);
materials.push(material4);
materials.push(material5);
materials.push(material6);
}
function switch$$anonymous$$aterial(n : int) {
renderer.material = materials[n];
}
Your answer
![](https://koobas.hobune.stream/wayback/20220613073226im_/https://answers.unity.com/themes/thub/images/avi.jpg)