Вам нужно будет кэшировать позицию объекта до того, как он будет уничтожен, и создать экземпляр объекта, который вы хотите создать с помощью кэшированной позиции. Этот следующий скрипт будет работать только для позиции. (Не проверено)
public class GameManager : MonoBehaviour
{
public static GameManager instance;
public GameObject prefabToDestroy;
public GameObject prefabToSpawn;
public void Start()
{
DestroyAndSpawn(prefabToDestroy, prefabToSpawn);
}
public void DestroyAndSpawn(GameObject prefabToDestroy, GameObject prefabToSpawn)
{
Vector3 position = prefabToDestroy.transform.position;
Destroy(prefabToDestroy);
Instantiate<GameObject>(prefabToSpawn, position, Quaternion.Identity);
}
}
Если вы хотите, чтобы порожденный объект имел такое же вращение, что и разрушенный, вы также можете кэшировать вращение и заменить Quaternion.Identity этим вращением.