今天给大家讲讲AI漫游模式,模型还是用之前几个课里用到的引擎自带的模型。
在一些大型游戏里,我们看到的敌人都有6种模式,站立、行走、奔跑、暂停、检测、攻击;今天我在这里给大家讲下前4种模式:站立、行走、奔跑、暂停
先定义下敌人的4种模式:
- //敌人站立状态
- public const int ENEMY_STAND = 0;
- //敌人行走状态
- public const int ENEMY_WALK = 1;
- //敌人奔跑状态
- public const int ENEMY_RUN = 2;
- //敌人暂停状态
- public const int ENEMY_PAUSE = 3;
复制代码
也要记录下敌人的状态:
复制代码
备份敌人暂停思考的时间: - private float backUptime;
复制代码
敌人思考下一次行为的世间,我们设置为1,很活跃的敌人…呵呵… - public const int AI_THINK_TIME = 1;
复制代码
初始化敌人状态为站立状态: - enemyState = ENEMY_STAND;
复制代码
开始执行AI,敌人进行漫游,思考状态: - //计算敌人思考时间
- if(Time.time - backUptime >= AI_THINK_TIME)
- {
- //敌人开始思考
- backUptime = Time.time;
- //取得0---2之间的随机数
- int rand = Random.Range(0,2);
- if(rand == 0)
- {
- //敌人进入站立状态
- enemyState = ENEMY_STAND;
- }
- else if(rand == 1)
- {
- //敌人进入行走状态,以及随机旋转角度
- Quaternion rotate = Quaternion.Euler(0,Random.Range(1,5) * 90,0);
- //1秒钟完成敌人旋转
- transform.rotation = Quaternion.Slerp(transform.rotation,rotate,Time.deltaTime * 1000);
- //播放行走动画
- gameObject.animation.Play("walk");
- enemyState = ENEMY_WALK;
- }
- }
复制代码
下面贴出全部代码:
复制代码
现在把这个代码拖到你的人物模型上,在运行游戏,人物就能进行漫游模式了…
|