プレハブ(Prefab)を1つのスクリプトで生成する際、それぞれの座標を個別に設定してみます。
3秒おきに同じタイミングで出現しますが、X座標とZ座標だけが異なります。

関連記事:
1秒おきにランダムでボールを落とす
ランダムでPrefabの座標を変える
出現時間をランダム(秒)にする
Instantiateでオブジェクトの角度を変える
Prefabの座標をランダムにして生成
3つのポジションから順番にPrefab生成
右方向へ移動するスクリプト
Cubeのプレハブを2個用意し、名前をそれぞれ「GreenCube」、「RedCube」としました。

左から右へ動かすためのPrefabMove.csという名前でスクリプトをつくりました。
PrefabMove.csのコードは以下のように書きました。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | using System.Collections; using System.Collections.Generic; using UnityEngine; public class PrefabMove : MonoBehaviour {    [SerializeField] float speed = 10;    void Update()    {         transform.position += new Vector3(Time.deltaTime * speed, 0, 0);         if(transform.position.x >= 60f)         {             Destroy(gameObject);         }     }   } | 
PrefabMove.csを「GreenCube」、「RedCube」のプレハブに追加します。
GreenCubeを選択し、コンポーネントを追加 > PrefabMove

GreenCubeにPrefabMoveが追加されています。

RedCubeも同じように、PrefabMoveコンポーネントを追加しておきます。

生成ポジションを個別に変える
この2つのプレハブを、Instantiateで生成しましょう。
空のオブジェクトを作成します。

GameManager.csという名前でスクリプトを作成し、GameObjectに追加します。

GameManager.csは以下のように書きました。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | using System.Collections; using System.Collections.Generic; using UnityEngine; public class GameManager : MonoBehaviour {     public GameObject GreenCube;     public GameObject RedCube;     private float time;     void Update()     {         time -= Time.deltaTime;         if(time <= 0.0f)         {             Instantiate(GreenCube,new Vector3(-20, 0, 0),Quaternion.identity);             Instantiate(RedCube,new Vector3(-10, 0, 10),Quaternion.identity);             time = 3.0f;         }     } } | 
GreenCube、RedCubeというフィールドが出来ています。
ここに、それぞれのプレハブを入れましょう。

プレイして動きを確認します。

3秒おきに、異なる座標でプレハブが生成されています。
関連記事:
1秒おきにランダムでボールを落とす
ランダムでPrefabの座標を変える
出現時間をランダム(秒)にする
Instantiateでオブジェクトの角度を変える
Prefabの座標をランダムにして生成
3つのポジションから順番にPrefab生成
 
	   
         
         
           
         
           
        