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); } } }
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); } } } } } }