平常咱们所用的 2d 或者3d 跑酷游戏都是 有无限的地图 把地图的游戏对象装入到队列里面对对列进行操作 队列就有先进显出的特点
// 利用队列进行
public Transform[] cubelist;
public float speed = 5f;// 距离
Queue<Transform> queuelist; // 一个队列
bool init = false;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
addlist();
}
// 添加
public void addlist()
{
if(!init) //
{
queuelist = new Queue<Transform>();
init = true;
for (int i = 0; i < cubelist.Length; i++)
{
// 进行入队 实例化
Transform cube = (Transform)Transform.Instantiate(cubelist[Random.Range(0,cubelist.Length)],new Vector3(speed*i,0,0),Quaternion.identity);
// 入队
queuelist.Enqueue(cube);
}
}
if (this.transform.position.x - queuelist.Peek().position.x >= 4f) // 比较第一个
{
Transform cube1 = queuelist.Dequeue(); // 出队
cube1.position = new Vector3(queuelist.ToArray()[queuelist.Count-1].position.x+4,0,0);
queuelist.Enqueue(cube1);
}
}