コード例 #1
0
        private void PlaceMode()
        {
            if (BuildingSelector.SelectedBuilding == null)
            {
                return;
            }

            if (tilesHoveringOver != null)
            {
                RevertTileColorsToBase();
            }
            bool isHitting = false;

            tilesHoveringOver = GetTilesAt(RaycastHelper.GetMousePositionInScene(out isHitting), new IntVector2(BuildingSelector.SelectedBuilding.xSize, BuildingSelector.SelectedBuilding.zSize));

            if (tilesHoveringOver == null)
            {
                return;
            }

            AdjustTileColors();
            if (Input.GetMouseButtonDown(0) && CanBePlaced(tilesHoveringOver) && BuildingSelector.SelectedBuilding.CanBeBought())
            {
                PlaceBuilding(BuildingSelector.SelectedBuilding, tilesHoveringOver, false);
            }
        }
コード例 #2
0
        private void DestroyMode()
        {
            BuildingSelector.SetToNull();
            bool isHitting = true;

            RaycastHelper.GetMousePositionInScene(out isHitting);
            if (tilesHoveringOver != null)
            {
                RevertTileColorsToBase();
            }

            if (isHitting == false)
            {
                return;
            }
            try {
                tilesHoveringOver = GetTilesAt(RaycastHelper.GetMousePositionInScene(out isHitting), new IntVector2(1, 1));
                AdjustTileColors();
                if (Input.GetMouseButtonDown(0) && tilesHoveringOver != null && tilesHoveringOver[0, 0].occupant != null)
                {
                    DestroyBuilding(tilesHoveringOver[0, 0]);
                }
            }
            catch {
            }
        }