使用Unity3D引擎制作2D横版跑酷地图无限循环

来源:互联网 发布:淘宝网鞋柜 编辑:程序博客网 时间:2024/05/16 10:49


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);
        }
    }
}
0 0
原创粉丝点击