所以我做了一个顶级太空射击游戏,到目前为止一切都很好。我的问题是,当我更换武器时,我希望辅助设备比主设备造成更大的伤害(可以使用数字键更改)。它是一个真正的头脑刮板,任何帮助将不胜感激。这就是我的尝试;
将武器添加到各个图层。在OnTriggerEnter2D函数中,我创建一个if语句,说明gameObject(项目符号)是否从第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);
}
}
答案 0 :(得分:1)
您可以通过向其添加OnTriggerEnter2D
参数来更改Collider2D
功能。这样您就可以访问触发该功能的gameObject。
您没有发布实例化子弹的代码。但是,如果您将项目符号名称设置为不同的值,则可以根据该名称降低运行状况。
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;
}