目的:要实现的功能就是你点击一下地图上的某个地方,人物就向着那个点移动。有点自动寻路的味道。

   例子:三国群英传,三国赵云传之类的游戏里面的人物移动就可以用这个实现。还有一个我不太喜欢玩的游戏英雄联盟也是可以这样实现的。

   怎么做:  先新建一些东西。如图:

  

这个Player我是建了一个椭圆体来用的。建好之后就开始跟着我做吧。

  一、打开Navigation

  

  二、为地图添加Navigation Static

选中plane,勾选Navigation Static,现在可以看到Navigation Layer默认的是Default,修改一下换成Walkable。如果没有Walkable去Layers里面自己手动添加。然后在右下角Bake一下。

  三、为Player添加NavMeshAgent组件,为其新建一个MoveToClickPoint脚本并添加,为其添加刚体组件。

脚本内容如下:

 using UnityEngine;

 public class MoveToClickPoint : MonoBehaviour {

     NavMeshAgent Agent;
// Use this for initialization
void Start ()
{
Agent=GetComponent<NavMeshAgent>(); } // Update is called once per frame
void Update ()
{
if (Input.GetMouseButtonDown())
{
RaycastHit hit;
if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition),out hit,))
{
Agent.destination = hit.point; //Agent目的地为点击的那个点
}
} }
}

一切完成之后运行,你会发现你点击某个地方,Player就会移动到某个地方。但是!注意到我的那个红色的cube了吗?红色的cube我的意图是让他成为障碍物。但是你点击后发现Player根本过不去。好了,现在来跟我做最后一步:

  四、为障碍物添加Navigation Static,将其Navigation Layer换成Not Walkable.最后bake一下。

现在来运行试试效果吧

Unity NavMesh导航网格 初级教程的更多相关文章

  1. Unity3D 导航网格自动寻路(Navigation Mesh)

    NavMesh(导航网格)是3D游戏世界中用于实现动态物体自动寻路的一种技术,将游戏中复杂的结构组织关系简化为带有一定信息的网格,在这些网格的基础上通过一系列的计算来实现自动寻路..导航时,只需要给导 ...

  2. [原]Unity3D深入浅出 - 导航网格自动寻路(Navigation Mesh)

    NavMesh(导航网格)是3D游戏世界中用于实现动态物体自动寻路的一种技术,将游戏中复杂的结构组织关系简化为带有一定信息的网格,在这些网格的基础上通过一系列的计算来实现自动寻路..导航时,只需要给导 ...

  3. Siki_Unity_1-6_C#编程初级教程(未学)

    Unity 1-6 C#编程初级教程 任务1:C#和.Net框架 C#是.Net里的一个成分 2002年微软发布第一个.Net框架(多平台,行业标准,安全性) .Net框架 IDE编程工具 --产生- ...

  4. 【Unity】第12章 导航网格和寻路

    开发环境:Win10.Unity5.3.4.C#.VS2015 创建日期:2016-05-09 一.简介 NavMesh(导航网格)是3D游戏世界中用于实现"动态"物体自动寻路的一 ...

  5. 【Unity】12.2 导航网格寻路简单示例

    开发环境:Win10.Unity5.3.4.C#.VS2015 创建日期:2016-05-09 一.简介 本节通过一个简单例子,演示如何利用静态对象实现导航网格,并让某个动态物体利用导航网格自动寻路, ...

  6. A*算法、导航网格、路径点寻路对比(A-Star VS NavMesh VS WayPoint)

    在Unity3d中,我们一般常用的寻路算法:   1.A*算法插件   与贪婪算法不一样,贪婪算法适合动态规划,寻找局部最优解,不保证最优解.A*是静态网格中求解最短路最有效的方法.也是耗时的算法,不 ...

  7. 极客技术专题【011期】:EasyUI初级教程

    来源:GBin1.com 技术专题:EasyUI初级教程 分享人:极客标签技术编辑 - html580(请站内关注分享人) 资深Web前端工程师,HTML580创始人,目前就职于广州一间软件公司.多年 ...

  8. Unity3D for iOS初级教程:Part 3/3

    转自Unity 3D for iOS 这篇文章还可以在这里找到 英语 Learn how to use Unity to make a simple 3D iOS game! 这份教程是由教程团队成员 ...

  9. 使用Unity做2.5D游戏教程(一)

    最近在研究Unity 3D,看了老外Marin Todorov写的教程很详细,就翻译过来以便自己参考,翻译不好的地方请多包涵. 如果你不了解2.5D游戏是什么,它基本上是个3D游戏而你可以想象是压扁的 ...

随机推荐

  1. Android 學習之旅!(2)

    早幾天因爲學車,弄了幾天時間和精力過去,今天終於考過了(科目二,還是補考的...)嗯..不管這麼多了..今天又開始我的android 學習之旅!! 筆記: platform-tools目錄下的文件: ...

  2. IP工具类

    import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.servlet.http.HttpServletReques ...

  3. String系列-----String

    jdk源码学习之String,手动实现一个String package com.amazing.jdk.string_2017_12_31; import java.io.Serializable; ...

  4. 简单的数据库备份语句--Oracle+SQLSERVER

    1. 工作中经常需要备份数据库表, 有时候经常需要baidu或者是询问,简单些一下.. 如果备份表不存在时: Oracle的语法 create table zhaobsh as select * fr ...

  5. React onWheel

    <!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8" ...

  6. angular4 组件通讯、生命周期

    主要通讯形式 父组件通过属性绑定到子组件,子组件通过事件传递参数到父组件 父组件通过局部变量获取子组件的引用 父组件使用@ViewChild获取子组件的引用 两个不相关联的组件使用中间人模式交互 终极 ...

  7. Java之反射举例

    package reflection; import bean.User; public class ReflectionDemo { public static void main(String[] ...

  8. python之匿名函数lambda

    # lambda:匿名函数 # 语法:lambda 参数: 表达式 answer = lambda x: x * 5 print("answer(5): ", answer(5)) ...

  9. verilog 数据格式

    基数格式(通常为无符号数)[size]'base value size常量的位数 base数制o:8 b:2 d:10 h:16 https://wenku.baidu.com/view/f63daa ...

  10. linux shell脚本报错总结

    1  rizhi.sh: line 28: warning: here-document at line 9 delimited by end-of-file (wanted `EOF') 原因是末尾 ...