所以我正在制作一个自上而下的小型太空射击游戏,到目前为止一切都很好。我的问题是,当我更换武器时,我希望次要武器比主要武器造成更多的伤害(可使用数字键更改)。这是一个真正的挠头问题,任何帮助将不胜感激。这就是我尝试过的;
将武器添加到单个图层。 在OnTriggerEnter2D函数中,我做了一个if语句,说明如果游戏对象(子弹)是从第13层发射的,带走x量的HP。 下面是我目前对敌人的代码。
using UnityEngine;
using System.Collections;
public class enemyDamage : MonoBehaviour {
public int health = 2;
void OnTriggerEnter2D(){
health--;
}
void Start () {
}
void Update () {
if (health <= 0){
Die();
}
}
void Die(){
Destroy (gameObject);
}
}
向OnTriggerEnter2D
函数添加Collider2D
参数来更改该函数。这样,您就可以访问触发函数的游戏对象。
您没有发布实例化项目符号的代码。但是,如果将项目符号名称设置为不同的值,则可以基于此降低运行状况。
void OnTriggerEnter2D(Collider2D other) {
if(other.gameObject.name == "missile"){
health -= 10;
}else if(other.gameObject.name == "bullet"){
health -= 1;
}
}
或者更好的主意可能是在子弹中添加一个脚本,该脚本知道子弹将造成的伤害量。
void OnTriggerEnter2D(Collider2D other) {
health -= other.gameObject.GetComponent<BulletScript>().damage;
}