Unity3D怪物基本AI
所谓怪物AI就是指我们为怪物编写一定的算法,使其可以具备一定程度的智能化,以增强游戏的可玩性。在一般的RPG游戏中,怪物通常在一个游戏设定的范围内巡逻,当玩家进入怪物的警戒范围时,怪物就会由巡逻状态转变为攻击状态,向玩家进行攻击,那么,我们今天就来实现一个简单的怪物AI吧,下面我们一起来看代码:
//定义怪物的四种状态:站立、行走、奔跑、无所事事
public const int STATE_STAND=0;
public const int STATE_WALK=1;
public const int STATE_RUN=2;
//怪物当前状态
private int NowState;
//游戏角色
public GameObject Hero;
//怪物思考时间
public const int AI_THINK_TIME=2;
//触发怪物攻击的临界距离
public const int AI_ATTACT_DISTANCE=10;
//上一次思考的时间
private float LastThinkTime;
void Start ()
{
}
void Update ()
{
//当敌人与怪物间的距离小于攻击范围半径的时候
if(Vector3.Distance(transform.position,Hero.transform.position)<AI_ATTACT_DISTANCE)
{
//敌人开始奔跑
this.GetComponent<Animation>().Play("run");
//敌人进入奔跑状态
NowState=STATE_RUN;
//使敌人面向角色
transform.LookAt(Hero.transform);
//向玩家靠近
transform.Translate(Vector3.forward*Time.deltaTime * 5);
}else
{
//当当前时间与上一次思考时间的差值大于怪物的思考时间时怪物开始思考
if(Time.time-LastThinkTime>AI_THINK_TIME)
{
//开始思考
LastThinkTime=Time.time;
//获取0-3之间的随机数字
int Rnd=Random.Range(0,2);
//根据随机数值为怪物赋予不同的状态行为
switch(Rnd)
{
case 0:
//站立状态
this.GetComponent<Animation>().Play("idle");
NowState=STATE_STAND;
break;
case 1:
//行走状态
//使怪物旋转以完成行走动作
Quaternion mRotation=Quaternion.Euler(0,Random.Range(1,5)*90,0);
transform.rotation=Quaternion.Slerp(transform.rotation,mRotation,Time.deltaTime*1000);
//播放动画
this.GetComponent<Animation>().Play("walk");
//改变位置
transform.Translate(Vector3.forward*Time.deltaTime * 3);
NowState=STATE_WALK;
break;
case 2:
//奔跑状态
this.GetComponent<Animation>().Play("run");
transform.Translate(Vector3.forward*Time.deltaTime * 5);
NowState=STATE_RUN;
break;
}
}
}
}
}
Unity3D怪物基本AI相关推荐
- 【原创】Unity3D 怪物散步、战斗、追击 AI
平时,我们在开发游戏时,都或多或少的要为游戏中的怪物设置 AI 行为,下面这个怪物 AI DEMO 包括了怪物的散步.遇敌.战斗.追踪等 AI,技能提供了几个简单的演示,但是可以无限扩展,希望对你有所 ...
- 【cocos2d-x 手游研发----怪物智能AI】
原创文章,转载请注明出处:http://www.cnblogs.com/zisou/p/cocos2d-xARPG4.html 谈到怪物AI,我觉得就比较话多了,首先理解一下(Artificial I ...
- 【LOSOL】怪物及AI设计
LOSOL怪物及AI设计 引子 怪物设计理念 怪物类型列举 怪物AI简述 怪物AI包括范围 怪物AI设计 结语 引子 怪物在游戏中始终占据着一个极其重要的位置,一个游戏的趣味性很大一部分跟怪物的设计挂 ...
- MFC学习笔记之三(粒子系统+怪物简单AI+碰撞检测)
到上海找到住的地方之后,干的第一件事,就是抓紧时间学习,为了找到工作努力ing... 备注:以下请参考http://blog.csdn.net/hust_xy/article/details/9374 ...
- Cocos2d-x怪物智能AI怪物也有智商--之游戏开发《赵云要格斗》(6) cocos2dx 3.3移植版
源码:git@github.com:baidang201/ARPG_Zhaoyun.git 本文将主要来讲讲游戏开发中的怪物智能,一个好的游戏一般怪物都要分等级,这样我们游戏玩起来才有意思,怪物如果智 ...
- 怪物智能AI系统详解
技术扫盲贴)揭开游戏设计的神秘面纱------游戏怪物NPC 的人工智能分析 在游戏中, 如果只有玩家操控的角色在游戏世界里孤单的产生一系列行为, 而没有其他任何可以和玩家角色形成交互活 ...
- Cocos2d-x怪物智能AI怪物也有智商----之游戏开发《赵云要格斗》(6)
这里是Evankaka的博客,欢迎大家前来讨论与交流------ 转载请注明出处http://blog.csdn.net/evankaka/article/details/4 ...
- unity怪物攻击玩家减血_Unity3D 战斗系统中的怪物简单AI(简单AOI)
AI With Monster In Battle System Introduction 一款RPG的战斗模块中,怪物AI是又一基础单元.在经典的即时战斗中,比较简单的流程是角色进入怪物的仇恨范围- ...
- Unity游戏开发 怪物巡逻AI
本人游戏策划一枚,爱好游戏设计开发 今天实现的内容是怪物AI,看了一些网上的AI,不是特别符合我的需求,于是就自己研究了一种AI,大致和魔兽类的RPG游戏效果差不多. AI效果如下: 1. 将怪物分为 ...
- Cocos2d-X 3.4版-怪物的AI《赵云要格斗》
引述Evankaka博客关于怪物AI的描述,如下: 低级怪物---一般是不能动的怪物,固定在原处,不断的发动攻击,然后根据英雄的方位,不断改变子弹的朝左还是朝向,如游戏中的炮台等. 中 ...
最新文章
- Stream、WshShell、WshUrlShortcut对象及Shell.Application的参数与使用
- Android静态安全检测 - WebView明文存储密码
- bose耳机信号断续_挥汗如雨的夏季将至,5款运动型蓝牙耳机安利给你
- 常用批处理命令总结之Find和FindStr
- jenkins上linux-gradle机器对android执行shell签名apk
- 转载------------java equals 方法
- KVM Disk Cache简析
- python认证考试mac_Mac OS 平台使用 Python 和 Docker 创建测试用 Https Server
- 使用Expression实现数据的任意字段过滤(1)
- minio nginx 配置
- 如何限制计算机用户的登录时间,电脑怎么设置上网时间有限制
- 第6课:scratch3的作品如何转换成exe文件
- 服务器系统小米随身wifi,Mac OS10.13正常使用的小米随身WIFI无线驱动 | 陳松's 博客...
- github客户端教程
- 运维人员的三种层次:看看你是背锅侠,还是闪修侠?
- Mac电脑专业音乐制作Logic Pro X中文
- 计算机桌面上的图标如何删除,怎么删除电脑桌面上的图标啊?
- Zeppelin Job monitor打开
- MaxEnt软件的安装
- 【Windows10下.sh文件的运行】‘bash’ is not recognized as an internal or external command