Unity的自动寻路

之前在学习Unity的时候,曾经学习过自动寻路,不过当时只能强撑着认为自己懂了。现在项目中也有自动寻路,虽然不是自己做的,不过正好学习一下。在网上学习了下,自动寻路会有以下几种

  1.  A星寻路 :核心是A星寻路算法,可以在网上下载插件使用,具体可以 参考这个链接https://blog.csdn.net/hasion/article/details/41284301
  2. Itween插件,寻路:之前都不知道使用Itween插件可以寻路,需要将路径点全都 存储起来, 赛车 游戏可以用这个
    using UnityEngine;
    using System.Collections;
     
    public class loadway : MonoBehaviour {
     
    	//paths是我们的路径点,一个一个的拼接起来构成最终的路径
    	public Transform[] paths;
    	void Start () {
    		Hashtable args = new Hashtable();//哈希表
    		//设置路径点
    		args.Add("path",paths);
    		//设置线性效果
    		args.Add("easeType",iTween.EaseType.linear);
    		//设置速度
    		args.Add("speed",10f);
    		//移动的整体时间
    		//args.Add("time",5f);
    		//移动过程中面始终朝向一点
    		args.Add("looktarget",Vector3.zero);
    		//是否从原始位置走到第一个点的位置
    		args.Add("movetopath",true);
    		//延迟
    		args.Add("delay",0.1f);
    		//循环类型
    		args.Add("loopType","pingpong");//有none,loop,pingpong这三种
    		//让模型当面向着跑去的方向
    		args.Add("orienttopath",true);
    		
    		iTween.MoveTo(gameObject,args);
    	
    	}
    		
    	void OnDrawGizmos()//绘制
    	{
    		iTween.DrawLine(paths,Color.yellow);
    		iTween.DrawPath(paths,Color.red);
    	}
    }
    

     

  3. 这个就是当初学习使用的方式 Unity自带的NavMeshAgent 使用很方便
    **选中场景中的对象物体,将Static设置为Navigation Static复选框,unity就会通过选中的对象生成导航网格
  4. //思路:自动寻路是根据场景中NavMeshAgent的功能,来自于AI的引用集。利用渲染以后的目标的位置设置来跟踪目标的位置
    
    //注意点:此方法中旧的stop和resume方法已经弃用了
    
    代码:
    
    // 1.设置追踪点
    
    private NavMeshAgent agent;
    
    private Transform player;   //2.设置目标点
    
    void Awake(){
    
      agent=this.GetComponent<NavMeshAgent>();  //3.初始化追踪点
    
    }
    
    void Start(){
    
      player=GameObject.FindGameObjectWithTag("Player").transform;  //4.初始化目标点
    
    }
    
    void Updata(){
    
      if(Vector3.Distance(transform.position,palyer.position)<3f){  //6.判断如果目标点的位置小鱼2f的时候
    
      agent.isStop=true;  //6.1追踪点停止追踪
    
    }else{
    
      agent,isStop=false;  //6.2追踪点开始追踪
    
      agent.SetDestination(palyer.position);  //5.设置追踪点的目标位置
    
    }
    
    }

    只需要设置追踪的目标点就行,详细的可以参考https://blog.csdn.net/yu1368072332/article/details/82980060?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值