Analyzing waypoints by height
This recipe lets us evaluate a waypoint according to its position. Strategically speaking, lower positions are at a disadvantage. In this case, we will use a flexible algorithm to get the quality of a waypoint, given the heights of its surroundings.
Getting ready
This recipe is simple enough, so there is no extra content to be aware of. The algorithm is flexible enough to receive a list of positions, which is given by the waypoint's neighbors or just the complete graph of waypoints. The surroundings heuristic is kept outside for our perusal and it gives the game's specific design.
How to do it…
We will implement a function to evaluate a location given its height and its surrounding points:
Declare the function for evaluating the quality:
public static float GetHeightQuality (Vector3 location, Vector3[] surroundings) { // next steps }
Initialize the variables for handling the computation:
float maxQuality = 1f; float minQuality = -1f; float minHeight = Mathf.Infinity...