- Home /
Complex character switching
In my game (A platformer), I need to be able to switch characters while playing. Right now, I am using the answer described here: http://answers.unity3d.com/questions/1124/how-to-change-my-character-during-the-game
All the characters (C1, C2, C3, and C4) are children of a gameobject called Player, which has the Lerpz tutorial character controller attached. When I hit Left Shift, the player changes from a cube to a sphere and keeps on moving along without a problem (The basic shapes are placeholders until I finish the models for the final ones). However, it's not going to be that simple in my game. There will be many more then four characters, some being custom characters defined by the user. Also, each character will have a different ability - a ninja can walljump, while somebody with a jetpack can glide, and a secret agent can use some sort of laser gun. Also, each character will be composed of about 12 meshes, so it won't be as simple as hiding a single mesh and revealing another when the player hits left shift. I'm new to scripting - could somebody give me an idea on how to do this, or a modification to the code I already have? Thank you!
What sort of transition effect do you want there to be between characters? Will the player simply change instantly from one character to another, or do you have some sort of visual effect in $$anonymous$$d to smooth out the transition?
Answer by Lachee1 · Nov 15, 2010 at 09:33 AM
have you tryed creating an empty game object, then adding the prefabs of each character to it, then just enabling each prefab in it? a FPS tutorial uses this, heres and example:
function Start () { // Select the first weapon SelectWeapon(0); }
function Update () { // Did the user press fire? if (Input.GetButton ("Fire1")) BroadcastMessage("Fire");
if (Input.GetKeyDown("1")) {
SelectWeapon(0);
}
else if (Input.GetKeyDown("2")) {
SelectWeapon(1);
}
}
function SelectWeapon (index : int) { for (var i=0;i<transform.childCount;i++) { // Activate the selected weapon if (i == index) transform.GetChild(i).gameObject.SetActiveRecursively(true); // Deactivate all other weapons else transform.GetChild(i).gameObject.SetActiveRecursively(false); } }
Your answer
Follow this Question
Related Questions
switching between in game characters 2 Answers
changing player (getting in vehicles) 3 Answers
2D Character Switch Systsem (Same Location) 1 Answer
Changing variable numbers depending on current player model. 1 Answer
Player switch on ui button 0 Answers