void closestFoodbit() { targetFbit = null; // reference to the script of the closest foodbit GameObject closest = null; float dist = Mathf.Infinity; cs = Physics.OverlapSphere(_t.position, (float)los); foreach (Collider c in cs) { GameObject f = (GameObject)c.gameObject; if (f && f.name == "Foodbit") { Vector3 diff = f.transform.position - _t.position; float curr_dist = diff.magnitude; if (curr_dist < dist) { closest = f; dist = curr_dist; } if (curr_dist < (float)fb_eat_range && crt.state == Creature.State.persuing_food) { fbit = f.GetComponent <Foodbit>(); crt.energy += fbit.energy; fbit.destroy(); crt.food_eaten++; } } } distance_to_goal = 0F; if (closest) { targetFbit = closest.gameObject; } goal = targetFbit; if (goal) { distance_to_goal = distanceToGoal(); } }
void closestFoodbit() { targetFbit = null; // reference to the script of the closest foodbit GameObject closest = null; float dist = Mathf.Infinity; cs = Physics.OverlapSphere(_t.position, (float)los); foreach (Collider c in cs) { GameObject f = (GameObject) c.gameObject; if (f && f.name == "Foodbit") { Vector3 diff = f.transform.position - _t.position; float curr_dist = diff.magnitude; if (curr_dist < dist) { closest = f; dist = curr_dist; } if (curr_dist < (float)fb_eat_range && crt.state == Creature.State.persuing_food) { fbit = f.GetComponent<Foodbit>(); crt.energy += fbit.energy; fbit.destroy (); crt.food_eaten++; } } } distance_to_goal = 0F; if (closest) { targetFbit = closest.gameObject; } goal = targetFbit; if (goal) { distance_to_goal = distanceToGoal(); } }