Destroy character controller and instantiate new one

Hi - in my game the player can switch between first and third person controller. When the third person controller1 hits the first collider, he is destroyed and a new one is instantiated. (This is all working)

But when the third person controller2 hits the second collider - I also want this controller to be destroyed and a third one to be instantiated. But using the same scripts (and changing the prefabs in the hierarchy) doesn’t work.
The prefab (third person controller3) is instantiated at (0,0,0), and the third person controller2 isn’t destroyed.

This is the script to destroy the character controller (JavaScript):

var thirdPerson : GameObject;
var vincentCamera : GameObject;
var firstCharacterPosition : Vector3;


function OnTriggerEnter(other: Collider){

  if (other.tag == "Player")
  { 
  
  firstCharacterPosition = thirdPerson.transform.position; 
  
    thirdPerson.active = false;
    vincentCamera.active = false;
    }
    
    }

And this is the script to instantiate a new one:

var prefab : GameObject;
var vincentCamera : GameObject;
var thirdPerson : GameObject;
var script : SwitchCharacters;
var playerGO : GameObject;  
private var hasPlayed = false;

var characterPosition : Vector3;


function OnTriggerEnter () {


if (!hasPlayed&&!thirdPerson.active){

characterPosition = GetComponent(DestroyCharacter).firstCharacterPosition;

var newPrefab = Instantiate (prefab, characterPosition, Quaternion.identity);
script.cam02 = prefab.Find("VincentCamera");


script = playerGO.GetComponent(SwitchCharacters);
script.player02 = newPrefab;


hasPlayed = true;

}

}

Does anyone know why this doesn’t work a second time - I tried destroying third person controller2 as if it was a game object (see below) - but this doesn’t work either.
Thanks, Laurien

I think an easier way to switch might be to just have one character, no instantiations. But instead, you could have both components (3rd person controller and 1st person controller) attached, and enable / disable these components individually.

GetComponent(FirstPersonController).enabled = true;
GetComponent(ThirdPersonController).enabled = false;

Just an idea, if this is something that would work for you. You would need to enable / disable cameras as well I’m pretty sure, but by using the same principal. Hope this helps.