导航网格寻路

静态烘培

计算机生成了可选文字:
[ 1 果 昱 . 、 刁 孓 ] 
Demol 
1 > 使 用 红 色 物 体 代 表 人 物 , 使 用 黄 色 代 表 寻 找 的 目 标 。

 

计算机生成了可选文字:
[ 课 堂 演 示 ] 
Demol 
2 > 选 择 除 了 主 角 、 目 标 以 及 摄 像 机 、 直 线 光 
以 外 的 所 有 物 体 , 在 In ector 窗 囗 的 右 上 角 勾 
选 Static, 成 为 静 态 物 体 , 并 设 置 成 Navigation 
Static 静 态 类 型 。 
3 > 在 主 窗 囗 中 选 择 (Window) 一 > 
(Navigation) , 打 开 Navigation 窗 囗 。 该 窗 囗 
用 于 生 成 路 径 寻 找 所 需 要 的 导 航 网 格 结 构 , 代 理 
将 根 据 该 导 航 网 格 进 行 寻 路 计 算 。 在 Obejct 中 勾 
选 "Navigation Static ” , 且 设 置 Radius 属 
性 为 0 . 1, 点 击 (Bake) 按 钮 , 对 场 景 进 行 路 径 
烘 焙 。 
. C 爨 p , 爨 , 一 , r 、 00 { , e 、 h , en e 刂 0 d , tb

 

添加NavMeshAgent组件

计算机生成了可选文字:
frNavMe shAgen t 
1• V Mesh Renderer 
V Nav Mesh Agent 
Radius 
Speed 
Acceleration 
Angular Speed 
0.5000001 
8 
120 
Stopping Distance O 
Auto Traverse Off MN 
Auto Braking 
Auto Repath 
Height 
Base Offset 
Obstacle Avoidance 
Avoidance Priority 
NavMesh Walkable 
2 
1 
so

 

让角色添加脚本控制

计算机生成了可选文字:
5) GZYyFindPath$j2vf4U4, 
public Transform TraFindingGoa1, 
private NavMeshAgent agent; 
thi s. GameObj ect. GetComponen tKNavMeshAgent) ( ) 
agent 
agent. SetDestination (TraFindingGoa1. transform. position)

 

 

   public Transform TraGoals;                             //寻路目标

    private NavMeshAgent _Agent;                           //寻路代理

 

void Start ()

{

        //得到寻路代理

        _Agent = this.gameObject.GetComponent<NavMeshAgent>();

}//Start_end

 

void Update ()

{

     if(TraGoals)

         {

             if (_Agent)

            {

                 //寻找目标

_Agent.SetDestination(TraGoals.transform.position);

            }        

         }

计算机生成了可选文字:
6 > 运 行 游 
色 目 标 点 
中 可 以

 

斜坡与跳跃

计算机生成了可选文字:
1 > 设 置 静 态 物 体 与 定 义 主 角 与 目 标 。

 

计算机生成了可选文字:
Height 
ffJ 
Radius 
Navigation 
ayet-S 
O Inspector 
General 
Radius 
Height 
Max Slope 
Step Height 
show 
Generated Off Mesh Links 
Drop height 
Jump Distance 
Advanced

 

计算机生成了可选文字:
3 > 主 角 添 加 NavMeshAgent 组 件 。 
4 > 编 写 自 动 导 航 脚 本 。 
5 > 测 试 游 戏 , 观 察 主 角 位 置 的 各 种 变 化 , 解 释 种 种 发 生 的 现 象 。 
( 主 角 走 上 斜 坡 、 主 角 钻 过 通 道 、 主 角 下 斜 坡 等 ) 
主 要 是 Navigation 窗 囗 中 Bake 标 签 页 中 的 Drop Height 参 数 的 
理 解 。

使用Off-Mesh Link组件

 

计算机生成了可选文字:
1 > 设 置 静 态 物 体 与 定 义 主 角 与 目 标 。 
、 •V e 、 h Di , p , 
, ho * Nev , , h V

 

计算机生成了可选文字:
2) Mesh Link _ÅiAH Start 
-5 End 
igat ion 
Object -F 43 "OffMeshLink Generatic 
Show

 

计算机生成了可选文字:
添 力 INavMeshAgent 
4 > 编 写 自 动 导 航 脚 本 。 
5 > 测 试 游 戏 , 观 察 主 角 位 置 的 各 种 变 化 , 解 释 种 种 发 生 的 现 象 。

添加脚本如下

using UnityEngine;

using System.Collections;

 

public class Tan_Finding : MonoBehaviour {

    public Transform Destnation;

    private NavMeshAgent _NavAgent;

// Use this for initialization

void Start () {

_NavAgent=gameObject.GetComponent<NavMeshAgent> ();

}

 

// Update is called once per frame

void Update () {

        if (Destnation&&_NavAgent)

        {

_NavAgent.SetDestination(Destnation.transform.position);

        }

}

}

网格分层与Navmesh Obstacle组件

只允许通过红桥或者蓝桥

计算机生成了可选文字:
1 > 设 置 静 态 物 体 与 定 义 主 角 与 目 标 。 
0 , r , p 
Show

 

计算机生成了可选文字:
2 > 定 义 寻 路 导 航 , 进 行 道 路 烘 焙 。 
Di 、 酈 0 
Show

 

计算机生成了可选文字:
3 > 主 角 添 加 NavMeshAgent 组 亻 
4 > 编 写 自 动 导 航 脚 本 。 
5 > 第 一 次 测 试 , 观 察 主 角 位 置 的 变 化 。 
测 试 移 动 目 标 的 位 置 以 及 主 角 的 位 置 , 观 察 主 角 总 是 挑 选 最 近 的 
道 路 进 行 “ 行 走 ” 。 如 果 现 在 要 求 主 角 只 能 走 特 定 的 桥 , 如 何 处 理 ?

 

计算机生成了可选文字:
+ ffJLayers 
project 
Gizmos 
MateriSls 
Blue 
defaultMat 
Green 
vellow 
Meshes 
soldier 
Bridge 
Red 
Bridge Blue. 
Cube_B rid gel_BIue 
cube_ooal 
Camera 
Plane 
Bred u e 
O Inspector Navig&tion 
Scene niter: 
(Mesh Renderer) 
Navigation Static V 
OffMeshLirik Ge

 

下图没有勾选Bridge_Blue ,代表选择Bridge_Blue通过

计算机生成了可选文字:
7) NavMeshAgent 
NavMesh Walkable 
"Xfi,E' 
Y— Mesh Agent 
Radius 
Speed 
Angular Speed 
Stopping Distance 
0.5000001 
Auto Traverse Off Mesh Link V 
Auto Braking 
Auto Repath 
Height 
Base Offset 
Obstacle A voidance Type 
Avoidance Priority 
NavMesh Walkable 
VLiu_Find Path_l (Sc 
Script 
Go Findinv Goal 
Red 
Main Color 
Base (RGB) 
Everything 
Def Nnt 
Not 
Bri

 

计算机生成了可选文字:
行 走 买 验 。

 

网格导航障碍物实验

计算机生成了可选文字:
[ 课 堂 实 验 〗 “ 障 碍 物 ” 实 验 Dem05 
3 > 主 角 添 加 NavMeshAgent 组 件 。 
4 > 编 写 自 动 导 航 脚 本 。 
5 > 第 一 次 测 试 , 观 察 主 角 位 置 的 变 化 。 
6 > 给 独 木 桥 添 加 “ 障 碍 物 ” (Nav Mesh Obstacle 组 件 ) , 使 得 通 
过 脚 本 方 式 动 态 的 改 变 此 桥 是 否 可 以 通 过 的 条 件 。 
7 > 编 写 桥 的 动 态 开 启 脚 本 。 
8 > 再 次 运 行 游 戏 。

 

脚本控制障碍物如下代码:

  private NavMeshObstacle _Obstacle;

 

// Use this for initialization

void Start () {

        _Obstacle = this.GetComponent<NavMeshObstacle>();

}

 

// Update is called once per frame

void Update () {

        if (_Obstacle)

        {

            if (Input.GetMouseButtonDown(0))

            {

                _Obstacle.enabled = false;

                this.renderer.material.color = Color.green;

            }

            if (Input.GetMouseButtonUp(0))

            {

                _Obstacle.enabled = true;

                this.renderer.material.color = Color.red;

            }

        }

}





原文地址:https://www.cnblogs.com/fftan/p/5132211.html