【Unity3D自学记录】游戏开发之怪物AI
来源:互联网 发布:唯品会网络首页登录 编辑:程序博客网 时间:2024/06/02 12:03
using UnityEngine;using System.Collections;public class BoosAI : MonoBehaviour{ //敌人状态 //敌人站立状态 public const int STATE_STAND = 0; //敌人行走 public const int STATE_WALK = 1; //敌人奔跑状态 public const int STATE_RUN = 2; //记录敌人的当前状态 private int enemyState; //主角对象 private GameObject hero; //备份上一次的敌人思考时间 private float backUptime; //敌人思考下一次行为的时间 public const int AI_THINK_TIME = 2; //敌人的巡逻范围 public const int AI_ATTACK_DISTANCE = 10; // Use this for initialization void Start() { //得到主角对象 hero = GameObject.Find("Cube"); //设置敌人的默认状态站立 enemyState = STATE_STAND; } // Update is called once per frame void Update() { //判断敌人与主角的距离 if (Vector3.Distance(transform.position, hero.transform.position) < (AI_ATTACK_DISTANCE)) { //敌人进入奔跑状态 gameObject.animation.Play("run"); enemyState = STATE_RUN; //设计敌人面朝主角方向 transform.LookAt(hero.transform); } //敌人进入巡逻状态 else { //计算敌人的思考时间 if (Time.time - backUptime >= AI_THINK_TIME) { //敌人开始思考 backUptime = Time.time; //取得0~2之间的随机数 int rand = Random.Range(0,2); if (rand == 0) { //敌人进入站立状态 gameObject.animation.Play("idle"); enemyState = STATE_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 = STATE_WALK; } } } switch (enemyState) { case STATE_STAND: break; case STATE_WALK: //敌人行走 transform.Translate(Vector3.forward * Time.deltaTime); break; case STATE_RUN: //敌人朝向主角奔跑 if (Vector3.Distance(transform.position, hero.transform.position) > 3) { transform.Translate(Vector3.forward * Time.deltaTime * 3); } break; } }}
0 0
- 【Unity3D自学记录】游戏开发之怪物AI
- [Unity3D]Unity3D游戏开发之怪物AI
- [Unity3D]Unity3D游戏开发之怪物AI
- 【Unity3D自学记录】Unity3D游戏开发之连续滚动背景
- 【Unity3D自学记录】Unity3D游戏开发之跑酷游戏项目讲解
- Cocos2d-x怪物智能AI怪物也有智商----之游戏开发《赵云要格斗》(6)
- Unity3d之怪物AI接口规范
- Unity游戏开发 怪物巡逻AI
- 【Unity3D自学记录】Unity3D游戏开发之鼠标滚轮实现放大缩小
- 【Unity3D自学记录】 Unity3D游戏开发之键盘选取、切换目标
- 【Unity3D自学记录】Unity3D游戏开发之自由视角状态下的角色控制(二)
- 【Unity3D自学记录】Unity3D游戏开发之自由视角状态下的角色控制(一)
- Unity3D怪物基本AI
- Cocos2d-x怪物智能AI怪物也有智商--之游戏开发《赵云要格斗》(6) cocos2dx 3.3移植版
- 【Unity3D自学记录】Unity3D开发之原创开关小部件
- unity3d 怪物的简单ai
- Unity3D研究院之游戏开发中的人工智能AI
- Unity3D研究院之游戏开发中的人工智能AI
- cocos2dx--两个场景切换各函数调用顺序
- 图片缩放插件
- XP是永恒的经典 Win8.1将接过前辈的衣钵
- 外交部发言人发言语料抓取及简单分析
- 开放式课程
- 【Unity3D自学记录】游戏开发之怪物AI
- 如何让360浏览器优先使用极速模式打开自己的网站
- 关于使用UltraISO写入硬盘硬盘镜像...便捷启动...写入新的引导扇区...设备正忙的失败处理
- “不完全类型”指在C++中有声明但又没有定义的类型
- [Java]IDEA快捷键整理
- cocos2dx开发报错Get data from file(images/xxx.png)failed!
- 异常输出到字符串和自定义异常记录
- C++程序的命名规则
- [PPT] 设定PPT默认字体