private void ShowMoveRange(bool show, UnitAndOrder unit)
    {
        if (unit.orders == null)
        {
            return;
        }
        GraphGrid   grid         = unit.orders.Grid;
        List <Node> nodesInRange = grid.GetAllNodesInRange(grid.FindNode(unit.GO.transform.position), unit.GO.GetComponent <Stats>().moveRange);

        foreach (Node node in nodesInRange)
        {
            if (show)
            {
                node.gameObject.GetComponent <MeshRenderer>().material = nodeInRangeMaterial;
            }
            else
            {
                node.gameObject.GetComponent <MeshRenderer>().material = normalNodeMaterial;
            }
        }
        if (show)
        {
            Node activeUnitNode = grid.FindNode(unit.GO.transform.position);
            activeUnitNode.gameObject.GetComponent <MeshRenderer>().material = activeUnitNodeMaterial;
        }
    }
 public void ChangeActiveUnit(GameObject newActiveUnit)
 {
     ShowMoveRange(false, ActiveUnit);
     ActiveUnit = FindUnitByGO(newActiveUnit);
     Debug.Log("New active unit is " + ActiveUnit.GO.name);
     ShowMoveRange(true, ActiveUnit);
     DrawPath();
     //change ui elements
 }