什么是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按钮烘焙地面。代码和上面的代码是一样的。这样就可以实现在两个地面上进行跳跃