Beispiel #1
0
    void LoadScenarioShip(Scenario.ShipEntry shipEntry, int layer, Dictionary <GameObject, ScenarioShipData> Container, Color miniMapColor)
    {
        ShipHullData hullData = ResourceManager.instance.GetShipHull(shipEntry.Hull);

        if (hullData != null)
        {
            GameObject newShip = ResourceManager.instance.CreateShip(hullData, shipEntry.Position, shipEntry.Rotation);
            if (newShip != null)
            {
                newShip.transform.GetChild(0).gameObject.layer = layer;
                ScenarioShipData data = new ScenarioShipData(shipEntry.Hull, shipEntry.Design, shipEntry.Name, shipEntry.Level);
                Container.Add(newShip, data);
                PlacedObjects.Add(newShip);
                attachMiniMapObject(newShip, miniMapColor);
            }
        }
    }
Beispiel #2
0
    public override void Update()
    {
        base.Update();

        mousePosition = new Vector2(Input.mousePosition.x, Screen.height - Input.mousePosition.y);

        if (Input.GetKeyDown(KeyCode.Escape))
        {
            CloseScreen();
        }

        if (!ScreenElementsContains(mousePosition))
        {
            Ray        ray;
            RaycastHit hit;

            ray = Camera.main.ScreenPointToRay(Input.mousePosition);

            //If we hit...
            if (Physics.Raycast(ray, out hit, Mathf.Infinity))
            {
                if (DummyUnit != null)
                {
                    if (!PivotSet)
                    {
                        DummyUnit.transform.position = new Vector3(hit.point.x, 1f, hit.point.z);
                    }
                    if (Input.GetMouseButtonDown(1))
                    {
                        DeselectDesignData();
                    }
                    else if (Input.GetMouseButtonDown(0))
                    {
                        PivotPoint = DummyUnit.transform.position;
                        PivotSet   = true;
                    }
                    else if (Input.GetMouseButton(0))
                    {
                        Vector3 Direction = (new Vector3(hit.point.x, 1f, hit.point.z) - PivotPoint);
                        if (Direction.magnitude > DummyShipRadius)
                        {
                            Quaternion Rotation = Quaternion.LookRotation(Direction);
                            DummyUnit.transform.rotation = Rotation;
                        }
                    }
                    else if (Input.GetMouseButtonUp(0))
                    {
                        GameObject PlacedShip = ResourceManager.instance.CreateShip(selectedDesign.Design.GetHull(), DummyUnit.transform.position, DummyUnit.transform.rotation);
                        PlacedObjects.Add(PlacedShip);
                        ScenarioShipData data = new ScenarioShipData(selectedDesign.Design.Hull, selectedDesign.Design.Name, shipName, shipLevel);

                        if (PlayerSelected)
                        {
                            PlacedShip.transform.GetChild(0).gameObject.layer = 9;
                            PlayerShips.Add(PlacedShip, data);
                            attachMiniMapObject(PlacedShip, ResourceManager.instance.GetGameConstants().Highlight_Player.GetColor());
                        }
                        else if (EnemySelected)
                        {
                            PlacedShip.transform.GetChild(0).gameObject.layer = 10;
                            EnemyShips.Add(PlacedShip, data);
                            attachMiniMapObject(PlacedShip, ResourceManager.instance.GetGameConstants().Highlight_Enemy.GetColor());
                        }
                        else if (AllySelected)
                        {
                            PlacedShip.transform.GetChild(0).gameObject.layer = 11;
                            AlliedShips.Add(PlacedShip, data);
                            attachMiniMapObject(PlacedShip, ResourceManager.instance.GetGameConstants().Highlight_Ally.GetColor());
                        }
                        else if (NeutralSelected)
                        {
                            PlacedShip.transform.GetChild(0).gameObject.layer = 13;
                            NeutralShips.Add(PlacedShip, data);
                            attachMiniMapObject(PlacedShip, ResourceManager.instance.GetGameConstants().Highlight_Neutral.GetColor());
                        }

                        PivotSet = false;
                    }
                }
                else
                {
                    if (Input.GetMouseButton(1))
                    {
                        //Debug.Log(hit.transform.gameObject.name);
                        if (PlacedObjects.Contains(hit.transform.gameObject))
                        {
                            RemovePlacedObject(hit.transform.gameObject);
                        }
                    }
                }
            }
        }
    }