塔防游戏固定路线解析

来源:互联网 发布:二维码生成器软件制作 编辑:程序博客网 时间:2024/06/05 02:44

在塔防我们需要小怪沿着固定路线行走,今天就给大家分享一下我的方法,直接上代码可在代码里看分析:

首先我们在场景里建立好Cube当作怪,Capsule来当作固定路点的点

接下来我们写一个脚本,将他绑定在Cube身上:

//建立路点数组

   public  GameObject[] pathPoint;

    //开始的索引

   int nextPathPointIndex = 1;

    // Use this for initialization

//设置速度
    public float speed;
    void Start () {

     //这里我们把所有Capsule的Tag值设置为Path
        pathPoint = GameObject.FindGameObjectsWithTag("Path");

//将他们进行排序,如果运行时出现怪不按路点行走,可在场景看一下GameObject[]是否按顺序排列!!!
        Array.Sort(pathPoint,(x,y)=> { return x.gameObject.name.CompareTo(y.gameObject.name); });

//设置怪的初始位置
        transform.position = pathPoint[0].transform.position;

//设置初始方向
        transform.forward = pathPoint[nextPathPointIndex].transform.position - transform.position;
}

// Update is called once per frame
void Update () {
        if (Vector3.Distance(pathPoint[nextPathPointIndex].transform.position, transform.position) <5)
        {

//如果不是最大的索引就让他继续++;
            if (nextPathPointIndex != pathPoint.Length - 1)
            {
                nextPathPointIndex++;
            }

//判断怪与路点之间的距离
            if (Vector3.Distance(pathPoint[pathPoint.Length - 1].transform.position, transform.position) < 0.1f)
            {
                transform.position = pathPoint[pathPoint.Length - 1].transform.position;
                return;
            }
            transform.forward = pathPoint[nextPathPointIndex].transform.position - transform.position;
        }
        transform.Translate(Vector3.forward * Time.deltaTime *speed, Space.Self);
    }

写好后返回场景,将路点拖入数组槽,运行可得到一下效果:


在游戏中我们是不想看到这些Capsule的,这时我们可以将所有Capsule右边组件的这个组件勾去掉


谢谢大家耐心的观看。


原创粉丝点击