- Home /
Question by
JackTenSeven · Apr 08, 2018 at 03:10 PM ·
gameobjectaitracking
Problem with AI tracking object
This is the function where an AI agent is supposed to set a target. Later in the code it moves toward it. But the problem is that it sets a target but once I spawn a new wave (with the same logic as before) it cant find a target.
private void smellNearestCreature(){
CreatureclosestDistance = 10000f;
for (int i = 0; i < gameManager.Creatures.Count; i++) {
if (gameManager.Creatures [i] != null && gameManager.Creatures[i]!=this.gameObject) {
float distance = Vector3.Distance (gameManager.Creatures [i].transform.position, this.transform.position);
if (distance <= CreatureclosestDistance) {
//WE ARE CLOSEST TO FOOD[I]
CreatureclosestDistance = distance;
closestCreature = gameManager.Creatures [i];
//print ("FOUND A CLOSE FOOD");
}
}
}
if (closestCreature == null) {
if (gameManager.Creatures [UnityEngine.Random.Range (0, gameManager.Creatures.Count)] != null && gameManager.Creatures [UnityEngine.Random.Range (0, gameManager.Creatures.Count)] != this.gameObject) {
closestCreature = gameManager.Creatures [UnityEngine.Random.Range (0, gameManager.Creatures.Count)];
float distance = Vector3.Distance (gameManager.Creatures [UnityEngine.Random.Range (0, gameManager.Creatures.Count)].transform.position, this.transform.position);
CreatureclosestDistance = distance;
} else {
closestCreature = gameManager.Creatures [UnityEngine.Random.Range (0, gameManager.Creatures.Count)];
float distance = Vector3.Distance (gameManager.Creatures [UnityEngine.Random.Range (0, gameManager.Creatures.Count)].transform.position, this.transform.position);
CreatureclosestDistance = distance;
}
}
}
Comment
Your answer
Follow this Question
Related Questions
Assign gameObject to a variable at runtime 2 Answers
Y-Positionen angleichen / Align the Y positions 0 Answers
GameObject Position Tracking? 1 Answer
check object if grounded 2 Answers
Distance thing with gameobject ? 4 Answers