脚本和寻路系统的结合

来源:互联网 发布:扫一扫二维码软件下载 编辑:程序博客网 时间:2024/06/17 12:42

什么是AI

人工智能(Artificial Intelligence),英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。

人工智能的发展的领域有哪些?

智能机器人,无人驾驶,Alpha Go,小度机器人,智能家居。

Unity中的Navigation导航

NavMesh(导航网格)是3D游戏世界中用于实现动态物体自动寻路的一种技术,将游戏中复杂的结构组织关系简化为带有一定信息的网格,在这些网格基础上通过一系列的计算来实现自动寻路。导航时,只需要给导航物体挂载导航组建,导航物体便会自行根据目标点来寻找最直接的路线,并沿着该线路到达目标点。

在地面上创建一个Plane座位地面,在地面上穿件一个Cube 并将此拉伸作为障碍物。并将此地面和障碍物勾选Navigation Static。
在菜单栏window中点击Navigation面板,在Navigation面板中的Bake选项卡中点击Bake按钮。烘焙导航网格。

在Plane上创建游戏对象。游戏对象头上的绿色帽子表示游戏对象的前方。这里写图片描述
在游戏对象身上添加NavigationAgent组件。同时在添加新的脚本。脚本的代码如下 :实现的功能是点击哪里,游戏对象就会移动到哪里。
public GameObject target;
private NavMeshAgent agent;
// Use this for initialization
void Start () {
agent = GetComponent();
}

// Update is called once per framevoid Update () {    Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);    //射线检测的信息    RaycastHit hit;    if (Physics.Raycast(ray, out hit, 100 /*LayerMask.NameToLayer("Ground")无效层*/ ))    {        if (Input.GetMouseButton(0))        {            agent.SetDestination(new Vector3(hit.point.x, agent.transform.position.y, hit.point.z));        }    }    //agent.SetDestination(target.transform.position);}

}

跳过障碍物这里写图片描述

在这里我们让游戏对象从一个平面跳跃到另外一个平面上,如图
这里写图片描述
再次选中右边的地面进行同样的操作,选择Bake选项卡,点击Bake按钮烘焙地面。代码和上面的代码是一样的。这样就可以实现在两个地面上进行跳跃

原创粉丝点击