1. 程式人生 > >使用Unity3D引擎製作2D橫版跑酷地圖無限迴圈

使用Unity3D引擎製作2D橫版跑酷地圖無限迴圈

using UnityEngine;

using System.Collections;
using System.Collections.Generic;
public class MapUnLimited : MonoBehaviour
{


    // Use this for initialization
    void Start()
    {


    }
    //地圖佇列
    Queue<Transform> CubeQueue;
    //地圖預製件,當然你也可以選取多個不同預製件的陣列,以便地圖多樣化
    public Transform cubeProfab;
    //public Transform[] cubeProfab;
    //是否初始化地圖
    bool isInitialCube = false;
    //初始化地圖數目
    int InitialCubeNum = 2;
    //地圖初始化橫座標,選擇適合的舉例
    public float InitialDistance = 5;
    //地圖銜接距離
    public float CubeDistance = 3;
    //主角
    public Transform Runner;
    // Update is called once per frame
    void Update()
    {
        if (!isInitialCube)
        {
            CubeQueue = new Queue<Transform>();
            isInitialCube = true;
            for (int i = 0; i < InitialCubeNum;i++ )
            {
                Transform cube = (Transform)Transform.Instantiate(cubeProfab, new Vector3(InitialDistance+i * 3, 0, 0), Quaternion.identity);
                CubeQueue.Enqueue(cube);
            }
        }
        if(Runner.position.x-CubeQueue.Peek().position.x>=2f)
        {
            Transform cube = CubeQueue.Dequeue();
            cube.position = new Vector3(CubeQueue.ToArray()[CubeQueue.Count - 1].position.x+CubeDistance, 0, 0);
            CubeQueue.Enqueue(cube);
        }
    }
}