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 }