炸弹人代码====================================================================
人物移动;改变Tag值为player ,编写敌人代码是获取transform值(shuxing) public class
playerContral:MonoBhaviour { //声明一个动画组件; private Animation ani;
//声明一个刚体,
private Rigidbody rBody; void Start() { //获取刚体,为移动获取刚体。拿一次就可以,所以写在Start
rBody = Getcomponent<Rigidbody>(); //获取该动画组件
ani=Getcomponent<Animation>(); } void Update() {
//垂直轴 Vertical为untiy内置
float vertical = Input.GetAxis("Vertical");//vertical有两个值+1和-1,代表上下键和w,d上为+1.
//水平轴
float horizontal = Iuput.GetAxis("horizontal");
//方向
Vector3 dir = new Vector3(horizontal, 0, vertical);//3个方向代表xyz,y轴表示向上,一般不用
if(dir != Vector3.zero)zero表示3个0,表示只要不等于0表示我们按下了一个键
{
//改变方向,
朝向 transform.rotation= 方向 Quaternion.LookRotation(dir);er:此时为人物加一个刚体,rigbody(此时人物会一直往下掉)地面和人物加一个碰撞体collider(调整碰撞体的大小与人物大小基本相符,触碰到碰撞体才会有效)
//移动
rBody.velocity(表示速度) = dir*3;(方向*速度) //播放跑的动画
ani.play(播放动画)(“添加动画名称forex:run”);
} else {
//站立动画,zero都为0,播放
ani.play(""); } } }
{{{{控制一个物体移动 float axisx,axisy void update() {
axisx=input.getaxis("horizontal"); axisy=input.getaxis("vertical");
this.transform.position=new Vetor3(axisx,axisy,0); }
}}}}}}
敌人 :在玩家到达一定距离时会跟随玩家,到达一定距离便会吃掉玩家 pubic class
enemyControl:MonoBehaviour {
private Rigidbody rBody;
private Animation ani;
private Transform player;(Transform代表玩家当前位置,缩放,)
void Start() {
rBody = Getcomponent<Rigidbody>();
ani = Getcomponet<Animation>(); //获取玩家Transform信息,使用Gameobject的FindwithTag方法(通过标签找物体)
player = Gameobject.FindwithTag("player").Transform; } void Update() { //如果没有玩家,就不返回
if(player==null)
{
return;;
} //计算和玩家的距离
自己的位置 玩家的位置
float dis = Vetor3.Distance/*(distance为Vetor的一个计算距离的方法)*/(transform.position,player.position)
if(dis<2f /*2mi*/) {
//杀死 玩家 若只写player便会销毁player的transform,加上gameobject才会销毁游戏对象
Destroy(player.gameobject);
// 播放站立动画
ani.play("idle"); } else if(dis<5f) {
//朝向玩家 wanjiaweizhi
transform.lookat(player.position);
//追击玩家
rBody.velocity = transform.forward*2;
//跑步动画
ani.play("move"); } else {
//待机状态
ani.play("idle"); } }
} 三 public class bomb:MonoBehaviour {
//写成public会出现在物体脚本属性下面,是希望通过拖动物体实现赋值效果。 //即在inspeter面板中将物体拖进来赋值
public GameObject BombEffectpre;
void start() {
} //当有游戏物体进入到触发器中,就会出发这个方法,玩家触发玩家就是other //使用这个函数要将碰撞体中的istrigger勾选上 private void OnTriggerEnter(Collider
other) {
if(other.tag=="Enemy"||other.tag=="player") {
//实现爆炸效果,在销毁玩家敌人之前。
Instantiate(BombEffectpre,transform.position,Quaternion.identity//第三个参数表示旋转,此时不旋转)
Destroy(other.gameObject);
Destroy(gameObject);//摧毁游戏对象,自生也会被摧毁 } } }
四 声音 先创建一个空物体,声音看不见。