//Crea una caja fisica en su posición, si colisiona con un edificio accede al nodo que lo contiene y comprueba si este está construido. //Si lo está, quiere decir que él también, se setea como contruido. Si no lo está y this si lo está le destruye su edificio porque no es una posición válida public void CheckIfBuildingColliding() { BoxCollider col = myBuildingType.GetCollider(); if (col != null) { Vector3 worldCenter = col.transform.TransformPoint(col.center); Collider[] colliders = Physics.OverlapBox(worldCenter, col.size * 0.4f, myBuildingType.transform.rotation, buildingLayer); if (colliders.Length != 0) { foreach (Collider collider in colliders) { Node parent = collider.transform.GetComponentInParent <Node>(); if (parent != this) { if (parent.GetIsBuilt() && !IsNeightboor(parent)) { canBeBuilt = false; myBuildingType.ChangeMaterial(nodeManager.unAvailablePositionMat); } else { canBeBuilt = true; myBuildingType.ChangeMaterial(nodeManager.availablePositionMat); } } else if (colliders.Length == 1) { canBeBuilt = true; myBuildingType.ChangeMaterial(nodeManager.availablePositionMat); } } } else { canBeBuilt = true; myBuildingType.ChangeMaterial(nodeManager.availablePositionMat); } } }