Unity - A计划(永久有效期) 扫二维码继续学习 二维码时效为半小时

(197评价)
价格: 4431.00元
在《如何制作塔防游戏》里设置敌人到达目标点的问题
ShaWs_发起了问答2019-12-16
6
回复
527
浏览

敌人会绕圈而不是到达目标点

看了代码和老师的一模一样

public class Enemy : MonoBehaviour 
  {
   /***脚本作用***/
   
   /*public*/
   //敌人移动速度
   public float speed = 10;
  
   /*private*/
   //路径点数组
   private Transform[] positions;
   //路径点索引
   private int index = 0;
  
   /*bool*/
  
   private void Start()
   {
      //获取路径点数组
      positions = WayPoints.positions;
   }
  
   private void Update()
   {
      Move();
   }
  
   //敌人移动方法
   private void Move()
   {
      //判断索引是否越界
      if(index>positions.Length-1) return;
      
      //敌人移动
      Debug.Log((positions[index].position-transform.position).normalized);
      transform.Translate((positions[index].position-transform.position).normalized*Time.deltaTime*speed);
      //判断敌人是否到达目标点
      if (Vector3.Distance(positions[index].position, transform.position) < 0.2f)
      {
         index++;
      }
  
   }
  } 
所有回复
  • 老师_Trigger 2019-12-17

    同学你好,看一下路径点设置的位置是否正确,另外看一下获取到的点的位置是否正确,可以输出一下。

    还有-4条回复,点击查看
    你还没有登录,请先登录注册
  • ShaWs_ 2019-12-17

    • 老师_Trigger 2019-12-17

      可以再仔细检查一下,如果是绕圈说明是路径点的顺序问题,肯定是接到了起点上,可以把第一个点去掉,老师路点里是不含起点的,如果检查还是排查不了问题可以发老师邮箱1925774628@qq.com

      (0) 回复
    • ShaWs_ 2019-12-18

      回复 @ 老师_Trigger: 好的

      (0) 回复
    • ShaWs_ 2019-12-18

      回复 @ 老师_Trigger: 解决了,敌人我粘贴了其他物体的transform所以出了Bug

      (0) 回复
    还有-2条回复,点击查看
    你还没有登录,请先登录注册
发表回复
你还没有登录,请先 登录或 注册!