Double Instantiate Prefab

I have a object that falls from the sky. When it “OnTriggerEnter” it instantiates another object. For some reason I get 2 Instantiated objects instead of one. This is something new that I havnt came across yet. Tried looking for the answer, but couldnt find any thing that was simialr to my problem. Here is my Code for the falling down object:

function OnTriggerEnter(other : Collider)
{
  if(other.gameObject.tag ==  "TempTurret")
    {
       StartTransformation();
       Destroy(other.gameObject);
    }
}

function StartTransformation()
{
  yield WaitForSeconds(yieldTimer);
  Instantiate(turretMissle, transform.position, transform.rotation);
  Destroy(gameObject);
}

Thank You:

James

At C# this maybe can like this. If you want spawn the other object immediately after collision:

private void OnTriggerEnter(Collider other) 
{
    if(other.gameObject.tag == "") 
    {
         StartTransformation();
         
    }
}

void StartTransformation() 
{
    Instantiate(turretMissile, transform.position, transform.rotation);
    Destroy(this.gameObject);
}

This must work.

Try this:

    private bool isInstantiated = false;
    
    function OnTriggerEnter(other : Collider)
     {
       if(other.gameObject.tag ==  "TempTurret" && isInstantiated)
         {
            isInstantiated = false;
            StartTransformation();
            Destroy(other.gameObject);
            Invoke("SetStatus",0.2f);
         }
     }
     
     function StartTransformation()
     {
       yield WaitForSeconds(yieldTimer);
       Instantiate(turretMissle, transform.position, transform.rotation);
       Destroy(gameObject);
     }
    
    private void SetStatus(){
        isInstantiated = true;
    }