PREAMBLE/* 最近、私は単調で頭を悩ませ始めました。初心者のポンゲームを最も行いました。私は今、3次元オブジェクトで作業しようとしています。私の考えはタワー防衛ゲームを作ることだったので、私はタワーと一時的なターゲットダミーを持っていました。塔には、敵のタグで最も近いオブジェクトを見つけてそれに線を引くスクリプトがありますが、ここに問題があります:*/FindGameObjectsWithTagがオブジェクトを返さない
My 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