Beispiel #1
0
    // Update is called once per frame
    void Update()
    {
        if (buildingTileUI == null || shipyardTileUI == null)
        {
            reassignGameObjs();
        }

        ClearHoverSelection();
        Ray ray = _Camera.ScreenPointToRay(Input.mousePosition);

        RaycastHit hitInfo;

        if (Physics.Raycast(ray, out hitInfo))
        {
            hitObject = hitInfo.collider.transform.gameObject; // Works for tiles inside parent Folder

            if (hitObject.name == "FleetMesh")
            {
                hitObject = hitObject.transform.parent.gameObject;
            }
            HoverObject(hitObject);
        }
        else
        {
            ClearHoverSelection();
        }

        // Select objects by cklicking (on a hovered over Object)
        if (Input.GetMouseButton(0))
        {
            try
            {
                // Hide Building Ui Panel
                if (hitObject.name != "TileConstruction_P1" && hitObject.name != "TileConstruction_P2")
                {
                    buildingTileUI.Hide();
                }
                // Hide Shipyard Ui Panel
                if (hitObject.name != "TileShipYardPlayer1" && hitObject.name != "TileShipYardPlayer2")
                {
                    shipyardTileUI.Hide();
                }

                if (hitObject.name == "NextTurnBTN2")
                {
                    ClearSelectedSelection();
                }
                else
                {
                    GetPlayer();
                    int playerNumber = (int)char.GetNumericValue(hoverObject.name[hoverObject.name.Length - 1]);

                    if (hoverObject.name.Contains("_P1") && hoverObject.name.Contains("Fleet") && activePlayer == 1)
                    {
                        CommandBatchSelectObj();
                    }
                    else if (hoverObject.name.Contains("_P2") && hoverObject.name.Contains("Fleet") && activePlayer == 2)
                    {
                        CommandBatchSelectObj();
                    }

                    if ((playerNumber == activePlayer) && !hoverObject.name.Contains("Fleet"))
                    {
                        CommandBatchSelectObj();
                    }
                }

                if (hitObject.name == "BTN_Factory")
                {
                    clickTile = selectedObject.GetComponent <ClickTile>();
                    clickTile.BuildFactoryOnTile();
                }
                else if (hitObject.name == "BTN_Turret")
                {
                    clickTile = selectedObject.GetComponent <ClickTile>();
                    clickTile.BuildTurretOnTile();
                }
                else if (hitObject.name == "BTN_Solar")
                {
                    clickTile = selectedObject.GetComponent <ClickTile>();
                    clickTile.BuildSolarOnTile();
                }
                else if (hitObject.name == "BTN_Fighter")
                {
                    clickTile = selectedObject.GetComponent <ClickTile>();
                    if (activePlayer == 1)
                    {
                        clickTile.BuildFighterOnTile(90);
                    }
                    else
                    {
                        clickTile.BuildFighterOnTile(-90);
                    }
                }
                else if (hitObject.name == "BTN_Bomber")
                {
                    clickTile = selectedObject.GetComponent <ClickTile>();
                    if (activePlayer == 1)
                    {
                        clickTile.BuildBomberOnTile(90);
                    }
                    else
                    {
                        clickTile.BuildBomberOnTile(-90);
                    }
                }
                else if (hitObject.name == "BTN_Corvette")
                {
                    clickTile = selectedObject.GetComponent <ClickTile>();
                    if (activePlayer == 1)
                    {
                        clickTile.BuildCorvetteOnTile();
                    }
                    else
                    {
                        clickTile.BuildCorvetteOnTile(-180);
                    }
                }
            }
            catch (Exception e)
            {
                Debug.Log(e);
            }
        }
    }