Unity3D导航实例
使用脚本使胶囊体自动导航移动到目标位置,本次为demo实现过程
搭建场景
搭建场景
设置对象
设置场景中的对象
- 设置可以行走的对象
在Hierarchy视图中,选中对象,然后打开Navigation总控制面板,打开Object选项卡,将Navigation Area设置为可以行走的对象(Walkable),如图:
- 设置网格分层
在Navigation总控制面板中的Areas选项卡下,将User3的Name属性修改为Bridge1,将User4的Name属性修改为Bridge2,如图:
- 在Hierarchy视图中,分别选中Slope01和Slope02,然后在Navigation总控制面板中的Object选项卡下,将Navigation Area属性分别修改为Bridge1和Bridge2,如图:
- 设置地面可以跳跃
在Hierarchy视图中选中需要跳跃经过的两个对象,然后再Navigation控制面板中的Object选项卡下勾选Generate OffMeshLink复选框,如图:
- 设置障碍物
在Hierarchy视图中选中Wall01和Wall02,在Navigation控制面板中的Object下勾选Navigation Static复选框,然后将Navigation Area设置为Not Walkable,在对象的Inspector视图中添加Nav Mesh Obstacle障碍物组件,如图:
- 烘焙导航网格
在Navigation总控制面板的Bake选项卡下,单机Bake烘焙导航网格,烘焙完成的网格如图:
- 注意,如果没有烘焙出跳跃的路径,检查一下Bake选项卡下的跳跃距离是否设为0了
设置胶囊体
- 设置胶囊体
在Hierarchy视图中添加3D对象Sphere,命名为Player
为它添加Nav Mesh Agent组件
为它添加脚本组件,命名为RunTest
编辑RunTest脚本:
using UnityEngine;
using UnityEngine.AI;
public class RunTest : MonoBehaviour
{
public Transform TargetObject;
void Start()
{
GetComponent<NavMeshAgent>().SetDestination(TargetObject.position);
}
}
- 设置目标点Target
在Hierarchy视图中添加空对象,命名为Target
将它的位置设置在要将胶囊体移动到的目标位置
将它拖入到Player对象Runtest组件的TargetPosition选项,如图:
运行游戏
需要注意
- 在Player的Nav Mesh Agent组件中的Area Mask属性,把需要的寻路层勾选后才会自动寻路
Unity3D导航系统介绍
https://www.cnblogs.com/su-make/p/Unity-Navigation-introduce.html
标签:Unity3D,选项卡,Hierarchy,视图,实例,设置,导航系统,控制面板,Navigation From: https://www.cnblogs.com/su-make/p/Unity-Navigation-Example.html