Unity官方案例同步学习-学习日记(二)——敌人AI寻路思路设计和部分方法

游戏中敌人AI的设计详解

主旨:承接上一篇文章player的续作,这边文章主要从代码上分析一个游戏中敌人AI的大部分的功能实现;以及游戏中在设计敌人时的思路和正确的方向,如有错误,希望每一个人都可以指正我谢谢大家;
上一篇文章:游戏中Player函数解析和方法说明:——学习日记(一).



前言

现在的游戏无论单机还是联网的游戏,相信大家对游戏中机器人这个“名词”不会太过陌生,手游吃鸡里面的机器人会给你送来“装备”;王者荣耀也有单机模式,并且随着大家需求的增多,现在人机模式也有难度的区别;
我小时候会玩DVD里面自带的游戏300,90后的人对里面的游戏都有些回忆,著名的游戏《魂斗罗》、《炸弹人》等等,里面也有敌人AI的概念,那应该是使我们最早接触的“游戏机器人”,我们总不能在DVD中联机打游戏吧!虽然那种敌人只能定点发射炮弹、定点攻击、一触即亡,但还是给我们带来了很多乐趣;
这篇文章依然是根据官网中的经典FPS游戏进行二次开发创作和讲解,会从简单的人机AI攻击,也就是前面提到的“定点攻击”,一点点的教给大家怎么把这个只会站立的“笨小孩”人机,变成“会跑”、“会找到你”的聪明的小可爱;
链接: 游戏源文件下载地址.


提示:以下是本篇文章正文内容,下面案例可供参考

一、敌人AI是怎么动起来的?

官方案例——人物移动代码详解

1.简易方法:(提供设计思路)
所有游戏人都会经历这个过程,最早的我让机器人动起来的思路是看了SIKI学院的免费视频的坦克大战,利用Random(a,b)取的一个值,并且规定四个范围(分为上(0 ~ 2)、下(3 ~ 6)左(6 ~ 8)右(8 ~ 10),向下的数字多一点,因为向下才能接近玩家守护的老家),利用这个随机数然后这应该是大家考虑第一考虑的想法,非常适合在一些简易的小游戏中进行线路设计,发射子弹在4秒调用一次,最简单的小人机就完成了;

2.我们更想让我们的敌人AI更加的聪明,可以判断我们的一些操作,自己在通过一些方法进行判断,再攻击或者逃跑,我开始一步步介绍这种设计思路和代码;
游戏中的物体大都是实时判断,所以很多代码都是在Updata中执行
代码如下(示例):


    void Update()
    {
   
       //判断物体的水平位置(每一帧都执行,如果AI低于水平值。则会被删除)
        EnsureIsWithinLevelBounds();
        //判断AI位置移动到目的地
        m_DetectionModule.HandleTargetDetection(m_Actor, m_SelfColliders);
        //颜色渲染
        Color currentColor = onHitBodyGradient.Evaluate((Time.time - m_LastTimeDamaged) / flashOnHitDuration);
        m_BodyFlashMaterialPropertyBlock.SetColor("_EmissionColor", currentColor)
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值