Navigation 简单自动寻路

Navigation 简单自动寻路


地形设置

选择地形模型,然后在Inspector窗口选项旁边的小三角显示出下拉菜单,确定其中的Navigation Static被选中 . 对于与场景地形无关的模型选项,则要确保该项没有被选中
Navigation 简单自动寻路_第1张图片

Navigation窗口

Window->Navigation即可打开Navigation窗口(默认显示在Inspector窗口旁边),
Radius 和 Height 可以理解为寻路者的半径和高度
Max Slope 是最大坡度,超过这个坡度,寻路者则无法通过
Step Height 是楼梯的最大高度,超过这个高度,寻路者则无法通过
Drop Height 表示寻路者可以跳跃的高度极限
Jump Distance 表示寻路者的跳跃距离极限

Bake

在Navigation窗口的属性都设置好以后,按Bake按钮,对地形进行计算,  Clear会清除计算的结果

可以移动到的位置会变成蓝色

人物设置

Component->Nav Mash Agent 将寻路组件指定给Player

编写脚本,让人物自动找到目标物体

关键代码

using UnityEngine;
using System.Collections;

public class MyTestNavPlayer : MonoBehaviour
{

    //目标物体 (在Unity中拖拽指定)
    public Transform m_Target;
    // 寻路组件
    NavMeshAgent m_agent;
    //移动速度
    float m_movSpeed = 3.0f;

    private bool isPhone;
    void Start()
    {

       

        m_agent = GetComponent<NavMeshAgent>();

       

    }

    // Update is called once per frame
    void Update()
    {
        // 设置寻路目标点
        m_agent.SetDestination(m_Target.transform.position);
        MoveTo();
    }
    // 寻路移动
    void MoveTo()
    {
        float speed = m_movSpeed * Time.deltaTime;
        m_agent.Move(transform.TransformDirection((new Vector3(0, 0, speed))));

    }
   

}





你可能感兴趣的:(Navigation 简单自动寻路)