Unity3D ARPG游戏开发《最初的幻想》之强化敌人AI,折腾的GUI
来源:互联网 发布:淘宝客服沟通技巧ppt 编辑:程序博客网 时间:2024/05/16 12:23
昨天搞了死亡的完善与提示栏的工作。今天的话,首先再升级一下敌人的Ai吧。毕竟在玩家在敌人身后使劲攻击的话,这敌人也都不会有反应的,太不合理了。
打开Enemy脚本,在最前面“变量”标签中,先定义一个计数器,因为必须考虑到被同类“误伤”的情况:
private int m_attackMeCount=0;//被一个同类对象攻击的次数
然后再在最下面的WaitForAttack函数中将自己的对象传入自己的攻击对象,以作判断:
m_damageTarget.m_changeMeTarget=m_transform;//将自己的对象传给攻击的目标
现在就可以在GetState函数中对攻击自己的目标进行判断了:
if(m_changeState.m_changeMeTarget!=null){if(m_changeState.m_changeMeTarget.tag=="Enemy"){m_attackMeCount++;if(m_attackMeCount>3)//敌人被同样是怪物的敌人攻击三次以上,就会也攻击攻击自己的敌人怪物了{m_isIdle=false;m_attackTarget=m_changeState.m_changeMeTarget;}}else//如果被非同类的攻击,就直接打起来了{m_isIdle=false;m_attackTarget=m_changeState.m_changeMeTarget;}}
这里我判断的计数器为三,也就是说,如果敌人被同样是怪物的敌人攻击了三次以上,就把自己的攻击目标设为攻击自己的,否则就直接攻击攻击自己的对象。
最后在PlayerControl脚本中,也还要加上一句将自己的对象传入攻击对象的语句:
m_nowAttackTarget.m_changeMeTarget=m_transform;
一样放在WaitForAttack中。
因为前面用到了“Enemy”标签来判断攻击自己的是否是敌人这一类,所以还要在编辑器中新建一个名为“Enemy”的Tag,然后再Enemy脚本的Start函数中加上这么一句话:
m_transform.tag=”Enemy”;
现在运行,一切Ok了。
那么现在继续下一步,把敌人的血条也加上罢!
这个如果使用DaikonGui就比较简单了,亏我第一做这游戏时,还用世界坐标转屏幕坐标,各种麻烦地花了好久才搞定……
算了,这个的麻烦成度同样超乎想象了….东西做是做好了,但是头顶的描述信息是所有人都会用到的,所以我想把它做成一个预制体放进去,待事例化一个什么用的着的东西时,直接将血条啊什么的实例化出来,直接传数据就是了,可是失败了……事例化出来的UI必须要在UI相机之下作为其子物体才有用!搞了一大晚上了,都没找着解决之道,本来找着一个可以将物体设置为另一个物体子物体的函数,但是却对DaikonGUI无效……
明天再研究不出来,我就还是用笨办法来解决了。。。。。。
- Unity3D ARPG游戏开发《最初的幻想》之强化敌人AI,折腾的GUI
- Unity3D ARPG游戏开发《最初的幻想》之GUI背包系统实现
- Unity3D ARPG游戏开发《最初的幻想》之第一张地图与跳跃的改善详解
- Unity3D游戏开发之GUI的使用
- unity3D游戏开发之GUI
- [Unity3D]Unity3D游戏开发之怪物AI
- [Unity3D]Unity3D游戏开发之怪物AI
- Unity敌人的AI
- Unity3D--创建敌人和玩家之间的AI
- 角色扮演游戏中敌人AI(人工智能)的设计方法
- unity3D游戏开发十三之GUI
- unity3D游戏开发十三之GUI
- unity3D游戏开发十三之GUI
- WPF开发的ARPG游戏引擎(WPF Game Engine)
- 开发ARPG游戏的角色基础属性系统
- Unity3d即时战斗之敌人AI和角色攻击
- 使用Unity3D编写ARPG游戏——角色属性的定义与实现(一)
- 使用Unity3D编写ARPG游戏——角色属性的定义与实现(二)
- jdk1.6以后的线程锁和等待唤醒示例
- Shell脚本中点号+文件名的作用
- OGEngine游戏开发引擎
- 快速更改包名,复制成新项目
- 在freemarker使用java类方法
- Unity3D ARPG游戏开发《最初的幻想》之强化敌人AI,折腾的GUI
- Linux下tomcat的安装与使用
- js字符串倒序
- .net装箱和拆箱
- INFORMIX的update statistics问题
- xcode5开发当中常用快捷键
- Activity的生命周期和加载模式
- oc 多继承
- win7中将文件拷贝到虚拟机linux下的方法