Unity3D_脚本与寻路系统的结合使用

什么是AI

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


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

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


游戏中加入AI有什么好处

提高游戏的可玩性 
激发玩家的挑战欲望 
增加游戏的友好体验


Unity中的Navigation导航

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



绕过障碍物

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

在Plane上创建游戏对象。游戏对象头上的绿色帽子表示游戏对象的前方。 
如图 
这里写图片描述

在游戏对象身上添加NavigationAgent组件。同时在添加新的脚本。脚本的代码如下 :实现的功能是点击哪里,游戏对象就会移动到哪里。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;
public class NavigationTest : MonoBehaviour 
{

    private NavMeshAgent agent;
    private Vector3 targetposition;
    // Use this for initialization
    void Start () {
            agent = GetComponent<NavMeshAgent>();
            targetposition = transform.position;
    }

    // Update is called once per frame
    void Update () {
        if (Input.GetMouseButtonDown(0))
        {
                //从摄像机视口出发到鼠标点击的位置产生一条射线
                Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
                RaycastHit hit;
                if (Physics.Raycast(ray,out hit,100))
                {
                    //如果点击到的是地面的话  就将点击的点坐作为目标点
                    if (hit.collider.tag =="Plane")
                    {
                        targetposition = hit.point;
                    }
                }
          }
          //设置目标点
          agent.SetDestination(targetposition);
      }
}

跳过障碍物

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


分图层寻路

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值