Итак, у меня есть этот скрипт, который отлично влияет на другой скрипт. Он прикреплен к игровому объекту (блоку атаки), который наносит урон другому игровому объекту (врагу). Это заставляет врага GameObject выполнять анимацию (это становится больно) и забирает определенное количество здоровья. Это все работает нормально.
Что я застрял в том, что я пытаюсь заставить его делать то же самое для более чем одного типа врагов, поэтому получаю доступ к нескольким сценариям. Сценарии относительно одинаковы, и я протестировал их по отдельности, и оба прекрасно работают. Но когда я пытаюсь установить свой блок атаки, к которому привязан скрипт, воздействовать более чем на один скрипт, я ничего не получаю Я думаю, что это просто так, как он напечатан, и я уже пробовал несколько способов. Но я вернул его обратно в его самую простую форму, чтобы отобразить его здесь. Как заставить этот сценарий работать для обоих, чтобы мне не нужно было подключать несколько сценариев к одному хитбоксу?
Я должен отметить, что в этом скрипте он получает доступ к первому скрипту, упомянутому в функции OnTriggerEnter2D. Он просто не делает этого для любых других скриптов, упомянутых впоследствии.
using UnityEngine;
using System.Collections;
public class slicer : MonoBehaviour {
public int damage = 5;
private foeHP foe;
private goblin gobby;
public float timer;
void Update()
{
Destroy ();
timer -= Time.deltaTime;
}
public void OnTriggerEnter2D (Collider2D other)
{
if (other.gameObject.tag == "Enemy") {
other.gameObject.GetComponent<foeHP> ().takeDamage (damage);
var foe = other.GetComponent<foeHP> ();
other.gameObject.GetComponent<goblin> ().takeDamage (damage);
var gobby = other.GetComponent<goblin> ();
}
if (foe == null) {
return;
}
if (gobby == null) {
return;
}
}
public void Destroy(){
if (timer <=0)
Destroy(gameObject);
}
}