Unity自动寻路的简单演示
来源:互联网 发布:锐思数据库 编辑:程序博客网 时间:2024/05/01 19:05
Unity3D 自带有自动寻路的组件,我也是初次学习,写下心得供各位参考参考。。
先直接写下使用方法,先明白怎么用,熟了之后再去了解为什么会这样。
就用一个鼠标点击寻路来演示吧。。。
首先我们新建一个plane和几个cube来构建一个简单的场景,如下图所示:
图中的球是我们要用来控制的角色,需要将除了球以外的所有物体勾选上Inspector窗口里的Navigation Static:
接下来,选择菜单栏->Window->Navigation打开Navigation窗口,选择每个物体,勾选上,Navigation Static选项,下面的选项暂时可以不用管。将障碍物的Navigation Layer选项选择为Not Walking,plane的Navigation Layer选择为Default。
全部搞定以后点击窗口底部的Bake按钮,场景会变成如下样子:
浅蓝色那一层就是我们创建出的路径图了。是不是很简单。。。
下一步我们来控制我们的角色。
选择圆球,单击->Component->Navigation->Nav Mesh Agent来给圆球添加一个寻路代理组件(里面的参数先别管,都默认就行了,等熟悉了再去慢慢研究)。
然后给通过一段代码来控制圆球,控制圆球的代码如下:
using UnityEngine;using System.Collections;public class NavMeshMove : MonoBehaviour { private NavMeshAgent m_nma;//寻路代理组件 private Camera m_camera; private RaycastHit m_hitPoint; private Ray m_ray; private LayerMask m_mask;// Use this for initializationvoid Start () { m_nma = GetComponent<NavMeshAgent>(); m_camera = Camera.main; m_mask = 1 << 8;}// Update is called once per framevoid Update () { if (Input.GetMouseButtonDown(1)) { Physics.Raycast(m_camera.ScreenPointToRay(Input.mousePosition), out m_hitPoint, Mathf.Infinity, m_mask); Debug.Log(m_hitPoint.point.ToString()); m_nma.SetDestination(m_hitPoint.point); }}}
将代码附到圆球上去。运行,鼠标点击平面任意位置,小球变开始演示寻路效果了。
0 0
- Unity自动寻路的简单演示
- 自动寻路算法演示
- Unity 3D 自动寻路(简单)
- Unity自动寻路
- Unity 自动寻路
- Unity里面的自动寻路
- unity的学习----NavMeshAgent,自动寻路
- 一个简单的小程序演示Unity的三种依赖注入方式
- 一个简单的小程序演示Unity的三种依赖注入方式
- 简单的小程序演示Unity的三种依赖注入方式
- 一个简单的小程序演示Unity的三种依赖注入方式
- 一个简单的小程序演示Unity的三种依赖注入方式
- 简单笔记的演示
- Unity之自动寻路
- Unity里面的自动寻路(二)
- Unity里面的自动寻路(二)
- Unity里面的自动寻路(一)
- Unity里面的自动寻路(二)
- 关于java web后台开发的一点心得
- 二叉树后序遍历
- android 禁止休眠和锁屏
- 写在2013的尾巴 即 写在蛇年的尾巴
- Permutation Sequence
- Unity自动寻路的简单演示
- hdu 4699 Editor 伸展树 treap复习
- 小白dp uva 662 - Fast Food (除夕夜的博客 ^ ^)
- JobQueueTaskScheduler
- CentOs 安装gcc 4.8.1
- UVA 11461 - Square Numbers 数学水题
- C++学习日记4 C++常量和算术表达式
- 罗大柚OpenGL ES教程系列LessonOne(Part 1): 绘制一个三角形
- 函数和数组