Dazu gibt es die Funktionen "OnDrawGizmos" und "OnDrawGizmosSelected".
Hier ist der Code, welcher eine Linie vom aktuellen zum nächsten NavMesh-zieht.
Erstelle dieses Script, hänge es an ein GameObject ran und ziehe dir ein Prefab davon:
public class NavCon
{
public GameObject nextWaypoint;
protected Color actualColor = Color.blue;
private void OnDrawGizmos()
{
if(nextWaypoint)
{
Gizmos.color = actualColor;
Gizmos.DrawLine(gameObject.transform.position, nextWaypoint.transform.position, actualColor);
}
// reset the color.
actualColor = Color.blue
}
private void OnDrawGizmosSelected() {actualColor = Color.green;}
}
{
public GameObject nextWaypoint;
protected Color actualColor = Color.blue;
private void OnDrawGizmos()
{
if(nextWaypoint)
{
Gizmos.color = actualColor;
Gizmos.DrawLine(gameObject.transform.position, nextWaypoint.transform.position, actualColor);
}
// reset the color.
actualColor = Color.blue
}
private void OnDrawGizmosSelected() {actualColor = Color.green;}
}
Wenn du nun ein anderes GameObject auf das "nextWaypoint"-Feld im Inspector ziehst, wird im Editor eine blaue oder grüne Linie zwischen den beiden GameObjects gezeichnet. Da es keine "OnDrawGizmosUnselected"-Funktion gibt, muss die Farbe nach jedem Zeichnen ge-resetted werden.