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)那一栏,同样也须要盒碰撞器,如果没有的话,子弹会穿过来,就是这个卡了我很久,毕竟是小白一枚,同时也须要 刚体,缺一不可。在设定好之后,子弹击中便会触发敌机的效应器,而后敌机便会隐没。
这样三大部分就实现了,这是一个很小的游戏,然而真正的参加进开发却会发现很多问题,也学到很多,其实还有很多不足之处,包含背景,以及敌机数量,敌机静止轨迹,还有敌机发射子弹等等,前期我也会持续开发欠缺。