zoukankan      html  css  js  c++  java
  • 自动寻路NavMesh

    步骤

      1.创建地形

      2.添加角色

      3.创建多个障碍物,尽量摆放的复杂些,用来检测NavMesh的可用性和效率

      4.选中地形,在Navigation窗口中,设置Navigation Static

      5.依次选中障碍物,在Navigation窗口中,设置Navigation Static

      6.在Navigation窗口中,选择Bake(烘焙)界面,点击Bake按钮,进行场景烘焙,就可以烘焙出寻路网格了

      7.为角色添加NavMeshAgent组件。Component->Navigation->Nav Mesh Agent

      8.为角色新增一个脚本PlayerController.cs,实现点击目标,自动寻路功能

    using UnityEngine;
    using System.Collections;
    
    public class PlayerController : MonoBehaviour {
    
        private NavMeshAgent agent;
    
        void Start () {
            // 获取组件
            agent = GetComponent<NavMeshAgent>();
        }
        
        void Update () {
            
            //鼠标左键点击
            if(Input.GetMouseButtonDown(0))
            {
                Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
                RaycastHit hit;
                if(Physics.Raycast(ray,out hit))
                {
                    //判断点击的是否地形
                    if (!hit.collider.name.Equals("Terrain"))
                        return;
    
                    //点击位置坐标
                    Vector3 point = hit.point;
    
                    //转向
                    transform.LookAt(new Vector3(point.x, transform.position.y, point.z));
    
                    //设置寻路的目标点
                    agent.SetDestination(point);
                }
            }
        }
    }

    相关知识

      1.角色身上的Nav Mesh Agent组件

        Radius半径:代理的半径(仅用于寻路目的,可以跟实际对象的半径大小不一样,一般比实际对象的半径大)

        Speed速度:代理走向它的目的地的最大移动速度

        Acceleration加速度:最大加速度

        Angular Speed角速度:最高转速(度/秒)

        Stopping distance制动距离:到目的地的距离小于这个值,代理减速

        Auto Traverse Off Mesh Link自动遍历Off Mesh链接:自动移动并关闭Off Mesh Links

        Auto Repath自动重新寻路:如果现有的部分已失效,获得新的路径

        Hight高度:代理的高度(用于调试图形)

        Base offset基本偏移:碰撞几何体相对于实际集合体垂直的偏移

        Obstacle Avoidance障碍躲避:躲避的质量水平

        Area Mash:执行代理可以遍历的导航网格层类型

      2.障碍物一定要有Mesh Renderer,用于烘焙寻路网格

  • 相关阅读:
    eclipse中文乱码问题解决方案
    修改Tomcat的JDK目录
    Tomcat 5.5 修改服务器的侦听端口
    HTML DOM教程 27HTML DOM Button 对象
    HTML DOM教程 24HTML DOM Frameset 对象
    Navicat for MySQL v8.0.27 的注册码
    HTML DOM教程 25HTML DOM IFrame 对象
    Tomcat 5.5 的下载和安装
    android manifest相关属性
    ubuntu10.04 下 eclipse 小结
  • 原文地址:https://www.cnblogs.com/-soy/p/5729471.html
Copyright © 2011-2022 走看看