塔防游戏固定路线解析

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

首先我们在场景里建立好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右边组件的这个组件勾去掉


谢谢大家耐心的观看。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值