void UpdateBothSideWideStreetBuildFence(MapBuildingFence mainBuildData, bool showMainBuild, FencePosition mainBuildSide, FencePosition oppositeBuildSide, Vector2Int oppositeBuildCoord) { if (PosValid(oppositeBuildCoord))//如果对面是在地图里面的 { var oppositeBuildFenceData = GetBuildingFenceData(oppositeBuildCoord); if (oppositeBuildFenceData == null) { return; } if (ActivedCoords.Contains(oppositeBuildCoord)) //如果对面是激活的 { mainBuildData.ShowFence(mainBuildSide, false); //自己则永远不激活临近的一面 oppositeBuildFenceData.ShowFence(oppositeBuildSide, !showMainBuild); //对面则看自己是否激活来确定激活临近自己这一边 } else { mainBuildData.ShowFence(mainBuildSide, showMainBuild); oppositeBuildFenceData.ShowFence(oppositeBuildSide, false); } } else { mainBuildData.ShowFence(mainBuildSide, showMainBuild); } }
void UpdateBuildingOneFence(Vector2Int nearBuildingCoord, bool showBuilding, int nearBuildingIndex, MapBuildingFence buildFenceData) { var nearBy = nearBuildingCoord; var showFence = false; if (ActivedCoords.Contains(nearBy))//临近建筑激活,那么自己显示则墙不显示,状态相反 { showFence = !showBuilding; } else { showFence = showBuilding; } buildFenceData.ShowFence((FencePosition)nearBuildingIndex, showFence); }