序言/ * 我最近開始擺弄團結:做一個初學者的乒乓球比賽,因爲大多數做的,我一直在試圖用現在的3D對象的工作。我的想法是做一個塔防遊戲,所以我有一個塔和一個臨時目標虛擬物。塔有一個腳本,它應該允許它找到與敵方標記最近的對象,並畫出一條線,但這裏是問題:*/FindGameObjectsWithTag沒有返回對象
我的GameObject.FindGameObjectsWithTag(「Enemy」)函數返回一個空陣列,儘管場景上有一個標記的,啓用的對象。
public class Attack : MonoBehaviour
{
GameObject[] enemies;
float dist;
GameObject target = null;
bool targeted = false;
float range = 1000;
bool FindTarget()
{
bool found = false;
enemies = GameObject.FindGameObjectsWithTag("Enemy");
//print(GameObject.FindGameObjectsWithTag("Enemy"));
foreach (GameObject enemy in enemies)
{
float tmpd = Vector3.Distance(enemy.transform.position, transform.position);
if (tmpd <= range && dist > tmpd)
{
dist = tmpd;
target = enemy;
found = true;
}
}
return found;
}
// Update is called once per frame
void Update()
{
if (!targeted)
targeted = FindTarget();
else {
Debug.DrawLine(target.transform.position, transform.position, Color.red);
dist = Vector3.Distance(target.transform.position, transform.position);
if (dist > range)
targeted = false;
}
}
}
我看了雖然有一千個其他線程,並找不到我的問題是什麼。任何幫助將不勝感激。
這可能是一個愚蠢的問題,但你是** 100%**確定敵人真的有這個確切的標籤 –
是否啓用這些對象('activeInHierarchy')? –
是的,這也發生在我身上,所以我直接複製了文本以確保它完全相同。 只要我能從檢查員屏幕上看到它們就被啓用,所有的滴答滴答都會打勾,我還需要檢查什麼? – totalolage