- Home /
How to replace prefab at the same location?
Hi everyone,
I am trying to make a tree that grows every ten seconds. I made 4 prefabs (germ, small, medium and big) and I want the object to change every 10 seconds. I manage to make the timer work, but i don't know how to replace PlantStage01 with PlantStage02. I tried with instantiate but it seems like I'm doing something wrong.
using UnityEngine;
using System.Collections;
public class PlantGrowth : MonoBehaviour
{
public float plantGrowth = 1;
public float plantSize;
void Start () {
}
void Update () {
plantSize = plantSize + plantGrowth * Time.deltaTime;
if (plantSize>=10)
Destroy (gameObject);
Instantiate (Resources.Load ("Prefabs/PlantStage02"));
}
}
All I achieve is that it keep creating PlantStage02 every frame until the gameObject is destroyed, then the script is destroyed with it, and nothing happens anymore. What I want is for the prefab PlantStage01 to disappear and be replaced by PlantStage02.
Can anybody help?
Thank you
Answer by _joe_ · Apr 04, 2015 at 03:17 PM
I'm going to assume that PlantGrowth is a script that is on PlantStage01
So when you Instantiate your PlantStage02, simply pass the position of PlantStage01
Instantiate (Resources.Load ("Prefabs/PlantStage02"), this.transform.position, this.transform.rotation);