Unity中如何用代码实现横版游戏路径的绘制

来源:互联网 发布:在线教学系统源码 编辑:程序博客网 时间:2024/05/16 17:46

首先,在场景中添加一个Cube,添加为预制件。

创建一个脚本,在脚本中写入下面的代码:

using UnityEngine;
using System.Collections;
using System.Collections.Generic;


public class qianjing : MonoBehaviour
{

 public Transform prefab;//定义预制件
    public Vector3 onepos;//定义起始位置
    public Vector3 nextpos;//定义下一个位置
    public int num;//数量
    public Vector3 minsize;//最小范围
    public Vector3 maxsize;//最大范围
    Queue<Transform> queues;//队列
    public float  distance;


    void Start()
    {
        queues = new Queue<Transform>(num);//实例化队列
        for (int i = 1; i < num; i++)
        {
            Transform trans = GameObject.Instantiate(prefab);//实例化预制件
            queues.Enqueue(trans);//将预制件添加至队列
        }
        nextpos = onepos;//起始位置  =  下一位置
        for (int i = 1; i < num; i++)
        {
            Keep();
        }
    }






    void Update()
    {
        if (Run.distances - queues.Peek().position.x >= distance)//物体移动距离与预制件长度的差
        {
            Keep();
        }


    }
    /// <summary>
    /// 预制件排列
    /// </summary>
    private void Keep()
    {
        //(预制件)随机大小
        Vector3 ban = new Vector3(Random.Range(minsize.x, maxsize.x), Random.Range(minsize.y, maxsize.y), Random.Range(minsize.z, maxsize.z));
        Transform trans = queues.Dequeue();//暂时移除(预制件)


       
       
        
            Vector3 poss = nextpos;//获取下一个预制件


            poss.y += ban.y * 0.5f;//预制件在Y轴方向上移预制件的一半距离
            poss.x += ban.x * 0.5f;//预制件在X轴方向右移预制件的一半距离
            trans.localScale = ban;//重新生成随机预制件
            trans.position = poss;//获取下一个预制件位置
            nextpos.x += ban.x;// 预制件在X轴方向右移(前)预制件大小的距离
        
       
        queues.Enqueue(trans);//添加队列中
    }

}返回场景,创建一个空游戏体,将脚本挂载在空游戏体上

点击运行,在游戏窗口就可以看到随机产生的游戏路径。

0 0
原创粉丝点击