使用Unity3D引擎製作2D橫版跑酷地圖無限迴圈
阿新 • • 發佈:2019-02-18
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);
}
}
}