敌人AI:行走

来源:互联网 发布:matlab魔方矩阵编程 编辑:程序博客网 时间:2024/04/29 01:46

实现的功能

在游戏过程中,有敌人和主角两种形态的GameObject。假设主角的行动和攻击已经设置完毕,现在设计敌人的AI,在本节中只开发敌人的行走---总是朝向主角进行行走。

注意:下面的Enemy.cs脚本挂在敌人身上。控制敌人AI行走的方式有很多,本节只是其中一种方法。

具体实现

1. 首先在敌人的Inspector面板中给敌人添加Character Controller,并设置好相关的参数,如下图所示。


2. 给敌人添加Enemy.cs脚本,用该脚本控制敌人的AI行走。

using UnityEngine;using System.Collections;public class Enemy : MonoBehaviour {public float speed = 2f;// 敌人行走的速度private CharacterController cc; // 定义控制敌人行走的CharacterController组件void Start(){cc = this.GetComponent<CharacterController> ();//  得到CharacterController组件}void Update(){Move ();// 在Update方法中,每一帧调用Move方法}// *********************** 控制敌人AI行走的方法 *********************************void Move(){// 需求分析:要实现敌人总是朝着游戏主角行走// 1. 首先获取主角相关组件// 主角的Transform组件Transform player = TranscriptManager._instance.player.transform;// 获取主角由TranscriptManager类管理Vector3 targerPos = player.position;targerPos.y = transform.position.y;// 敌人的y和主角的y一致// 2. 面向主角transform.LookAt(targerPos); // this/*敌人*/.transform.LookAt(targetPos)// 3. 敌人移动cc.SimpleMove (transform.forward * speed);}}

获取主角的脚本,该脚本挂在空的GameObject上面,用于Transcript中的代码管理。

using UnityEngine;using System.Collections;public class TranscriptManager : MonoBehaviour {public static TranscriptManager _instance;public GameObject player;// Use this for initializationvoid Awake () {_instance = this;player = GameObject.FindGameObjectWithTag("PlayerBoy");} }





0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 高铁车厢空调冷怎么办 高铁票过了时间怎么办 网购火车票丢了怎么办 改签没有票了怎么办 火车票取了没赶上车怎么办 上车后车票丢了怎么办 晒了吗任务过期怎么办 坐火车买了站票怎么办 坐火车忘记带票怎么办 距离二本线差几分怎么办 行李包落火车候车厅怎么办 高铁票买错地点怎么办 高铁票买错日期怎么办 票买错时间了怎么办 上高铁了票丢了怎么办 上车前高铁票丢了怎么办 高铁安检没收的东西怎么办 高铁安检员老了怎么办 高铁安检喷雾拍照了怎么办 十个小时的高铁怎么办 华为开机需要激活码怎么办 高铁提前上车了出站怎么办 买火车票忘记带身份证怎么办 买高铁票没赶上怎么办 电脑放视频没有声音怎么办 内业计算中角度超限怎么办 遇到飞机出故障乘客怎么办 模拟城市5矿产满了怎么办 模拟城市5劳工短缺怎么办 模拟城市5土地价值低怎么办 考上研究生想二战研究生学籍怎么办 小米3屏幕花屏怎么办 狗被城管抓了怎么办 隔壁家的狗扰民怎么办 遛狗碰到碰瓷老太太怎么办 碰到保安碰瓷的人怎么办 碰到碰瓷的车怎么办 商品房楼上邻居违规装修怎么办 遇到不讲道理的邻居怎么办 邻居告我我该怎么办 丈夫判刑十年回来妻子怎么办