// увеличиваем или уменьшаем кол-во выбранных кораблей private void ManageShips(ShipManagement action, int selectedShipWidth) { switch (action) { case ShipManagement.PLACE: RemainedForPlaceShips[selectedShipWidth - 1]--; break; case ShipManagement.DELETE: RemainedForPlaceShips[selectedShipWidth - 1]++; break; } switch (selectedShipWidth) { case 1: ShipsLabel1.Text = RemainedForPlaceShips[selectedShipWidth - 1].ToString(); break; case 2: ShipsLabel2.Text = RemainedForPlaceShips[selectedShipWidth - 1].ToString(); break; case 3: ShipsLabel3.Text = RemainedForPlaceShips[selectedShipWidth - 1].ToString(); break; case 4: ShipsLabel4.Text = RemainedForPlaceShips[selectedShipWidth - 1].ToString(); break; } }
public void InputCommands(int i, ShipManagement squadLeader, bool formationMode) { Camera camera = GameObject.Find("Main Camera").GetComponent<Camera>(); float distance; if (Input.GetKey(KeyCode.LeftShift) && !Input.GetKey(KeyCode.Z)) { Plane p = new Plane(Vector3.up, -transform.position.y); Ray ray = camera.ScreenPointToRay(Input.mousePosition); if (p.Raycast(ray, out distance)) { targetHeading = ray.GetPoint(distance); } } if (Input.GetKey(KeyCode.Z)) { var pl = Camera.main.transform.position - targetHeading; Plane zp = new Plane(pl.normalized, pl.magnitude); Ray zray = camera.ScreenPointToRay(Input.mousePosition); if (zp.Raycast(zray, out distance)) { var ytarget = zray.GetPoint(distance); targetHeading = new Vector3(targetHeading.x, ytarget.y, targetHeading.z); } } if (Input.GetMouseButton(0) && Input.GetKey(KeyCode.LeftShift)) { move = false; _formationMode = formationMode; //turning this into an abstract or interface will help. if (!_formationMode) { MoveOperation(targetHeading); } else { SetDestination(i, squadLeader); //FollowLeader(); FormateAtTarget(); MoveOperation(targetHeading, squadLeader); //targetHeading = targetPosition; } targetPosition = targetHeading; } else // its possible that there might be interference from the Update method. { move = true; } }
void MoveOperation(Vector3 targetPosition, ShipManagement squadLeader = null) { // Insert fish scripts here. var simpleMove = GetComponent<SimpleMove>(); if (simpleMove != null) { simpleMove.Move (targetPosition); } }
public void SetSquadLeader(ShipManagement thisGuy) { _squadLeader = thisGuy; }
public void SetDestination(int squadNum, ShipManagement squadLeader = null) { _squadronNumber = squadNum; if (squadLeader != null) { _squadLeader = squadLeader; } //idk why I'm doing this. kind of redundant. //targetPosition = targetHeading; }