public void UpdateTilesModification() { bool modifyTile = false; int tileX = 0; int tileY = 0; if (Application.platform == RuntimePlatform.Android || Application.platform == RuntimePlatform.IPhonePlayer) { if (Input.touchCount == 1 && !InputAreas.IsInputArea(Input.GetTouch(0).position)) { modifyTile = GetTileCoordinatesUnderTouch(out tileX, out tileY); } } else { if (Input.GetMouseButton(0) && !InputAreas.IsInputArea(Input.mousePosition)) { modifyTile = GetTileCoordinatesUnderMouse(out tileX, out tileY); } } switch (editTool) { case AvatarInputEditTool.Add: if (modifyTile) { avatarView.ParentView.TilemapCircle.SetTile(tileX, tileY, 1); } break; case AvatarInputEditTool.Remove: if (modifyTile) { avatarView.ParentView.TilemapCircle.SetTile(tileX, tileY, 0); } break; case AvatarInputEditTool.MoveCamera: UniverseViewCamera.Instance.UpdateMove(); break; } }
public void UpdateClickOnPlanetToTravel(UniverseView universeView) { bool clickTravel = false; Vector2 clickPosition = Vector2.zero; if (Application.platform == RuntimePlatform.Android || Application.platform == RuntimePlatform.IPhonePlayer) { if (!travelInput) { if (Input.touchCount == 1 && Input.GetTouch(0).phase == TouchPhase.Began && !InputAreas.IsInputArea(Input.GetTouch(0).position)) { travelInput = true; travelInputStartPosition = Input.GetTouch(0).position; } else { travelInput = false; } } else { if (Input.touchCount == 1) { if (Input.GetTouch(0).phase == TouchPhase.Ended) { if ((travelInputStartPosition - Input.GetTouch(0).position).magnitude < 10) { clickTravel = true; clickPosition = Input.GetTouch(0).position; } travelInput = false; } } else { travelInput = false; } } } else { if (!travelInput) { if (Input.GetMouseButtonDown(0) && !InputAreas.IsInputArea(Input.mousePosition)) { travelInput = true; travelInputStartPosition = Input.mousePosition; } else { travelInput = false; } } else { if (Input.GetMouseButtonUp(0)) { if ((travelInputStartPosition - (Vector2)Input.mousePosition).magnitude < 10) { clickTravel = true; clickPosition = Input.mousePosition; } travelInput = false; } else if (!Input.GetMouseButton(0)) { travelInput = false; } } } if (clickTravel) { Vector2 worldPos = Camera.main.ScreenToWorldPoint(clickPosition); Vector2 worldPosTolerance = Camera.main.ScreenToWorldPoint(clickPosition + Vector2.right * (Screen.dpi > 0 ? Screen.dpi : 72) / 2.54f); //1 cm tolerance int clickedThingIndex = universeView.Universe.FindClosestRenderedThing(worldPos, (worldPos - worldPosTolerance).magnitude); if (clickedThingIndex >= 0) { PlanetView targetPlanetView = universeView.GetPlanetView((ushort)clickedThingIndex); if (universeView.avatarView.UniverseObject.parent != targetPlanetView.TilemapCircle) { GameLogic.Instace.TravelToPlanet(targetPlanetView); } } } }