1.第一步:后面实现了飞机的射击零碎以及静止零碎,接下来要做的就是实现敌机的静止零碎以及子弹击中敌机时的响应。所以咱们要先让敌机动起来,这也须要脚本文件,咱们同样在scripts文件夹外面创立一个名为EnemyController的C#脚本,双击之后进行编辑,代码如下:
using System.Collections;using System.Collections.Generic;using UnityEngine;public class EnemyController : MonoBehaviour{ //敌军飞船生命量 public int Health = 100; //敌军飞船速度 public float Speed = 1.0f; //保障飞船在上下左右挪动 public Vector3 MinMaxX = Vector3.zero; // Start is called before the first frame update void Start() { } // Update is called once per frame void Update() { transform.position = new Vector3( //Mathf.PingPong(A,B)其中A是个变动的值,B是取值所要的区间 //随着A的变动,函数的取值再0到B之间变动,从0升到B,再从B降到0,重复循环。 MinMaxX.x + Mathf.PingPong(Time.time * Speed, 1.0f) * (MinMaxX.y - MinMaxX.x), transform.position.y, transform.position.z ); } //触发器的入口 void OnTriggerEnter(Collider other) { Destroy(gameObject); Destroy(other.gameObject); }}
2.第二步:编写并保留后,同样将本段代码拖到敌机的左边的查看器(Inspector)那一栏,这时便会看到EnemyController(scripts)能够调节挪动属性,这里的敌机是在一直的左右挪动。
在敌机以及能够挪动了,并且飞机的挪动以及射击零碎实现后,接下来就是击中断定零碎了,我这里做的是子弹击中敌机后,敌机便会隐没,下面代码的最初曾经写了对于敌机的触发器,接下来便是设置触发器,这里也是卡的我最久的时候,因为设置出问题的话,触发器便响应不了。
首先:咱们点击敌机,敌机的组件有盒碰撞器,是否有刚体都无所谓,但肯定要有碰撞器,同时这里碰撞器勾选是触发器(Is Trigger),
其次:咱们抉择Assets外面的ammo预设,双击它,进入ammo的左边的查看器(Inspector)那一栏,同样也须要盒碰撞器,如果没有的话,子弹会穿过来,就是这个卡了我很久,毕竟是小白一枚,同时也须要刚体,缺一不可。在设定好之后,子弹击中便会触发敌机的效应器,而后敌机便会隐没。
这样三大部分就实现了,这是一个很小的游戏,然而真正的参加进开发却会发现很多问题,也学到很多,其实还有很多不足之处,包含背景,以及敌机数量,敌机静止轨迹,还有敌机发射子弹等等,前期我也会持续开发欠缺。