有哪些比较有名的用unity开发的unity 3d游戏开发

Unity3D游戏排行榜_2016Unity3D游戏排行榜前十名_好玩的手机Unity3D游戏排行榜Unity3D游戏排行榜当前位置:&&游戏排行榜3D麻将消消乐是一款比较休闲的麻将消消乐游戏,来不停的找角度,消除麻将吧...3.4MB90这是一款真实场景的篮球游戏。在游戏里需要不断投篮磨练自己的技术挑战不同...6.62MB83冒险任务3D是一款冒险动作游戏,这是一段传奇的冒险之旅,来加入团队,一起...3.4MB993D模拟流浪狗是一款模拟动物类手机游戏46.89MB853D狐狸模拟是一款狐狸模拟游戏,要想生存下来就要用到最狡猾的技巧!31.26MB90想要自己生存下去,那你就要拿出点本事哦!99.34MB80你的摩托技术如何,快来展示一下吧!33.39MB90公交车驾驶是很注重安全的,你能安全的行驶到目的地吗?65.38MB81化身为英雄猎人,拯救世间苍生吧!26.56MB85自己的农场,自己来经营。3.4MB88梦想世界3D是一款角色策略游戏,这是一个梦想的世界,万事皆有可能!248.10MB91反飞机炮手战3D是一款二战题材的射击类手机游戏47.57MB84数码暴龙兽3D是一款角色策略游戏,来寻找属于你的数码宝贝,一起去冒险战斗...117.62MB92登山赛车3D贺岁版是一款赛车冒险类手机游戏38.96MB903D狂野飞车2是一款赛车竞速游戏,跟随动感的引擎声,来一场速度之战!23.67MB80九鼎封神3D是一款仙侠题材的RPG手机网游3.4MB903D模拟小兔子是一款休闲模拟游戏,来养只小兔子,并帮它打扮吧!26.85MB84勇敢向前冲3D是一款跑酷冒险游戏,跑酷永无止境!更多冒险等你来挑战!18.03MB85空中大战3D是一款空中射击类手机网游3.4MB873D拼图块是一款3D拼图类手机游戏27.87MB903D迅猛狂飙是一款赛车竞速游戏,来感受速度带给你的激情吧!3.4MB93这一款免费的赛车竞速手游,下载游戏,体验一把激情吧!52.20MB82这是一款角色扮演的空中射击游戏。在空中战斗,展现高超的技术,击溃敌机!27.59MB91城市公交车司机模拟器3D是一款模拟驾驶类手机游戏25.24MB99你的停车技术怎么样?快来展示一番吧!16.25MB853D水滑梯是一款休闲竞速类游戏,非常刺激的水上游戏,赶紧来体验吧!3.4MB803D泥路货车是一款开汽车竞速游戏,看谁才是真正的老司机!36.97MB82高速移动,让你感受速度的激情!27.75MB95刀塔英雄3D是一款策略卡牌类手机网游3.4MB92实况漂移3D是一款赛车竞速游戏,来感受最疯狂的赛车竞速!31.35MB80风之旅团九游版是一款动作冒险游戏,高清品质,超强打击感,让你热血战斗,...173.39MB87造化之门手游安卓版是一款仙侠题材的动作冒险游戏,全新的仙侠世界等你来挑...3.4MB862013年12月 站务专区大版内专家分月排行榜第一2013年8月 站务专区大版内专家分月排行榜第一2013年7月 站务专区大版内专家分月排行榜第一2013年6月 站务专区大版内专家分月排行榜第一2013年4月 社区支持大版内专家分月排行榜第一
2013年5月 社区支持大版内专家分月排行榜第二
2014年6月 移动开发大版内专家分月排行榜第二
本帖子已过去太久远了,不再提供回复功能。程序写累了,就来玩玩酷跑小游戏吧,嘿嘿。
雨松MOMO送你一首歌曲,嘿嘿。
Unity3D研究院之游戏开发中的人工智能AI(三十八)
Unity3D研究院之游戏开发中的人工智能AI(三十八)
围观41501次
编辑日期: 字体:
很久没有写Unity3D相关的东西了,是因为这段时间我深陷一款IOS的软件开发中。不过以后我还是会回归Unity3D游戏开发的。什么语言都在用,生活与工作都挺给力的嚯嚯。今天还是打开了久违的Unity3D编辑器,那我就写点东西吧,今天我想说的是游戏中的人工智能。人工智能这个东西在游戏中是非常重要的,人工智能说简单了就是根据随机的数字让敌人执行一些动作或逻辑,说难了TA需要一个非常复杂的算法,本文我主要说说Unity3D中人工智能的脚本如何来编写。
首先你应该搞清楚的一点AI脚本属于一个工具类脚本,工具类脚本的含义就是他应当是由策划人员来绑定游戏对象使用的。也就是说AI脚本程序员应当写的非常的灵活,策划人员可以通过修改脚本对外的变量数值接口就能控制其中的敌人AI。接着创建一个c#脚本AI.CS ,如下图所示,目前脚本对外留出枚举接口变量,策划人员在使用这条脚本时选择对应敌人类型即可。(注:这里仅仅是示例,细致的话还可以将很多敌人详细的信息写入,如:攻击速度、技能类型、移动速度、命中率、攻击百分比、等等,但是一定要让你的脚本写的比较灵活,策划人员在外面选择即可完成)因为目前是一个示例,所以我在这里只简单的区分的敌人类型。
下面时这段简单AI的脚本
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212
using UnityEngine;using System.Collections;&//这里是枚举选择敌人类型public enum EnemyType{ Enemy0, Enemy1}&public class AI : MonoBehaviour {& //敌人类型枚举 有策划人员选择 public EnemyType enemyType = EnemyType.Enemy0;& //主角游戏对象 public GameObject player;& //敌人状态 普通状态 旋转状态 奔跑状态 追击主角状态 攻击主角状态 private const int EMEMY_NORMAL=0; private const int EMEMY_ROTATION=1; private const int EMEMY_RUN = 2; private const int EMEMY_CHASE = 3; private const int EMEMY_ATTACK = 4;& //记录当前敌人状态 根据不同类型 敌人播放不同动画 private int state; //旋转状态,敌人自身旋转 private int rotation_state; //记录敌人上一次思考时间 private float aiThankLastTime; & void Start () {
//初始话标志敌人状态 以及动画为循环播放
state = EMEMY_NORMAL;
this.animation.wrapMode = WrapMode.Loop; }& void Update () {
//根据策划选择的敌人类型 这里面会进行不同的敌人AI
switch(enemyType)
case EnemyType.Enemy0:
updateEnemyType0();
case EnemyType.Enemy1:
updateEnemyType1();
} }& //更新第一种敌人的AI void updateEnemyType0() {
//这个AI比较简单, 当主角与他的距离小于10米时,他将始终朝向这主角
if(Vector3.Distance(player.transform.position,this.transform.position) &= 10)
this.transform.LookAt(player.transform);
} }& //更新第二种敌人的AI void updateEnemyType1() {&
//判断敌人是否开始思考
if(isAIthank())
//敌人开始思考
AIthankEnemyState(3);
//更新敌人状态
UpdateEmenyState();
} }& int getRandom(int count) {&
return new System.Random().Next(count);& }& bool isAIthank() {
//这里表示敌人每3秒进行一次思考
if(Time.time - aiThankLastTime &=3.0f)
aiThankLastTime = Time.time;
return true;&
return false; }& //敌人在这里进行思考 void AIthankEnemyState(int count) {
//开始随机数字。
int d = getRandom(count);&
//设置敌人为站立状态
setEmemyState(EMEMY_NORMAL);
//设置敌人为旋转状态
setEmemyState(EMEMY_ROTATION);
//设置敌人为奔跑状态
setEmemyState(EMEMY_RUN);
}& }& void setEmemyState(int newState) {
if(state == newState)
state = newState;&
string animName = "Idle";
switch(state)
case EMEMY_NORMAL:
animName&&=&&"Idle";
case EMEMY_RUN:
animName&&=&&"Run";
case EMEMY_ROTATION:
animName&&=&&"Run";
//当敌人为旋转时, 开始随机旋转的角度系数
rotation_state = getRandom(4);
case EMEMY_CHASE:
animName&&=&&"Run";
//当敌人进入追击状态时,将面朝主角方向奔跑
this.transform.LookAt(player.transform);
case EMEMY_ATTACK:
animName&&=&&"Attack";
//当敌人进入攻击状态时,继续朝向主角开始攻击砍人动画
this.transform.LookAt(player.transform);
//避免重复播放动画,这里进行判断
if(!this.animation.IsPlaying(animName))
//播放动画
this.animation.Play(animName);
}& }& //在这里更新敌人状态 void UpdateEmenyState() {
//判断敌人与主角之间的距离
float distance = Vector3.Distance(player.transform.position,this.transform.position);
//当敌人与主角的距离小于10 敌人将开始面朝主角追击
if(distance &= 10)
//当敌人与主角的距离小与3 敌人将开始面朝主角攻击
if(distance &= 3)
setEmemyState(EMEMY_ATTACK);
&&&&//否则敌人将开始面朝主角追击
setEmemyState(EMEMY_CHASE);
//敌人攻击主角时 主角迅速奔跑 当它们之间的距离再次大于10的时候 敌人将再次进入正常状态 开始思考
if(state == EMEMY_CHASE || state == EMEMY_ATTACK)
setEmemyState(EMEMY_NORMAL);
switch(state)
case EMEMY_ROTATION:
//旋转状态时 敌人开始旋转, 旋转时间为1秒 这样更加具有惯性
transform.rotation = Quaternion.Lerp (transform.rotation, Quaternion.Euler(0,rotation_state * 90,0),&&Time.deltaTime * 1);
case EMEMY_RUN:
//奔跑状态,敌人向前奔跑
transform.Translate(Vector3.forward *0.02f);
case EMEMY_CHASE:
//追击状态 敌人向前开始追击
transform.Translate(Vector3.forward *0.02f);
case EMEMY_ATTACK:&
如下图所示,我们在游戏世界中添加两个敌人,此时给敌人们都绑定上AI的脚本,编辑器中设置不同的敌人类型,敌人执行各自的生命周期,当你控制主角与接近敌人时,敌人开始追击你并且向你展开攻击。
demo仅仅是一个示例,主要希望大家明白一个道理。在编写Unity游戏脚本时,一定要想想这条脚本和对象的生命周期,切记每一条脚本只管和自己有关的东西,和自己无关的东西一概不要管。不然你会发现你的脚本会越写越乱,下一篇文章我会写点我平时在Unity3D开发中时如何搭建架构的,希望大家多多讨论,互相学习。
下载地址:
本文固定链接:
转载请注明:
雨松MOMO提醒您:亲,如果您觉得本文不错,快快将这篇文章分享出去吧 。另外请点击网站顶部彩色广告或者捐赠支持本站发展,谢谢!
作者:雨松MOMO
专注移动互联网,Unity3D游戏开发
如果您愿意花10块钱请我喝一杯咖啡的话,请用手机扫描二维码即可通过支付宝直接向我捐款哦。
您可能还会对这些文章感兴趣!评论该主题
作者:您目前是匿名发表 &
作者:,欢迎留言
提示:用户在社区发表的所有资料、言论等仅代表个人观点,与本网站立场无关,不对您构成任何投资建议。用户应基于自己的独立判断,自行决定证券投资并承担相应风险。}

我要回帖

更多关于 unity 3d游戏开发 pdf 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信