private void OnFingerTap(LeanFinger finger) { var ray = finger.GetRay(); var hit = default(RaycastHit); LayerMask layerMask = 1 << 9; if (Physics.Raycast(ray, out hit, float.PositiveInfinity, layerMask) == true) { var obj = hit.collider.gameObject; Cell c = obj.GetComponent <Cell> (); var pos = c.transform.position; pos.y = 0.8f; var war = Instantiate(prefabWarrior, pos, Quaternion.identity) as GameObject; var w = war.GetComponent <Warrior> (); var n = war.GetComponent <Navigator> (); n.x = c.x; n.y = c.y; myWarriors.Add(w); obj.GetComponent <Renderer> ().material.SetColor("_BaseColor", redColor); obj.layer = 1; } }
public void OnFingerTap(LeanFinger finger) { if (!economyGC.isGameOver) { // Make sure the finger isn't over any GUI elements //if (finger.IsOverGui == false) //{ // Raycast information Ray ray = finger.GetRay(); RaycastHit hit = default(RaycastHit); // Was this finger pressed down on a collider? if (Physics.Raycast(ray, out hit, float.PositiveInfinity, LayerMask) == true) { // Select the hit GameObjectk Select(hit.collider.gameObject, finger); } else { // Nothing was tapped, so deselect Deselect(finger); } //} } }
private void OnFingerTap(LeanFinger finger) { if (finger.StartedOverGui) { return; } if (!Data.IsRoadActive) { return; } if (Data.RoadGuid == GridDataContainer.RoadInTownGuid)//это значит что это дорога под городом и не должна нажиматься вообще { LeanTouch.OnFingerTap -= OnFingerTap; return; } var roadController = GetComponentInParent <RoadController>(); var tappedObj = finger.GetRay().GetRayHitWithMask("RoadTile"); if (!tappedObj?.gameObject) { roadController.UpdateAnimatorState(false); return; } var tilemapPos = TilemapsDataContainer.Instance.WorldToCell(finger.GetWorldPosition(10)); if (GridDataContainer.Instance.RoadTilesData.TryGetValue(tilemapPos, out var roadTileData)) { roadController.UpdateAnimatorState(roadTileData.RoadGuid == Data.RoadGuid); } else { roadController.UpdateAnimatorState(false); } }
private void OnFingerSet(LeanFinger finger) { var ray = finger.GetRay(); var hit = default(RaycastHit); LayerMask layerMask = 1 << 8; if (Physics.Raycast(ray, out hit, float.PositiveInfinity, layerMask) == true) { var obj = hit.collider.gameObject; if (obj.transform.position != lastObjPos) { lastObjPos = obj.transform.position; Cell c = obj.GetComponent <Cell> (); if (obstacleRowCount [c.y - 1] == obstacleMaxRowCount) { tooltipUI.GetComponent <Animation> ().Play(); } if (c.obstacle || ((!c.obstacle && obstacleCount < obstacleMaxCount) && obstacleRowCount [c.y - 1] < obstacleMaxRowCount)) { c.ToggleCell(); if (c.obstacle) { obstacleCount++; obstacleRowCount[c.y - 1]++; } else { obstacleCount--; obstacleRowCount[c.y - 1]--; } var count = obstacleMaxCount - obstacleCount; obstacleCountText.text = count.ToString(); var color = count == 0 ? redColor : greenColor; for (var i = 0; i < width; i++) { for (var j = 1; j < height - 1; j++) { if (!Grid [i, j].obstacle) { Grid [i, j].GetComponent <Renderer> ().material.SetColor("_BaseColor", color); if (obstacleRowCount [j - 1] == obstacleMaxRowCount) { Grid [i, j].GetComponent <Renderer> ().material.SetColor("_BaseColor", redColor); } } } } } } } }
private void LeanTouch_OnFingerUp(LeanFinger obj) { if (isLocked) { MapInteractions.Instance.UpdateBuildingPreview(false, obj.GetRay(), true); // must swith layer !obj.IsOverGui); } isLocked = false; transform.position = position; var c = image.color; c.a = 1; image.color = c; }
private void HandleFingerTap(LeanFinger finger) { if (!Physics.Raycast(finger.GetRay(), out var hitInfo, Mathf.Infinity) || finger.IsOverGui) { return; } var isDoubleTap = CheckForDoubleTap(); _lastTappedTime = Time.time; var monoBehaviorObj = hitInfo.collider.GetComponent <MonoBehaviour>(); if (monoBehaviorObj != null) { if (_selectedObject.IsInit) { // If can interact somehow, don't reselect. if (_selectedObject.TryInteractWithObject(monoBehaviorObj)) { return; } } // Can't interact in any way, reselect. if (!_selectedObject.SameObject(monoBehaviorObj)) { _selectedObject.InitObject(monoBehaviorObj); ShowProperControlsUI(); OnObjectReselect?.Invoke(); } else { // Zoom on selected if (isDoubleTap) { CameraManager.Instance.SetLeanChaseDestination(monoBehaviorObj.transform); } } } else { // Touched map, try to move ship there, if selected. var moveToPos = new Vector3(hitInfo.point.x, AllData.I.RtsGameData.RtsShipsPosY, hitInfo.point.z); _selectedObject.TryMoveToPos(moveToPos); } }
private void OnFingerTap(LeanFinger finger) { if (finger.StartedOverGui) { return; } var tappedObj = finger.GetRay().GetRayHitWithMask("Upgrade"); if (tappedObj == gameObject) { if (gold >= GoldNeededForUpdate) { animator.SetTrigger(PressTriggerName); if (gameObject.GetComponentInParent <UpgradableCell>().Upgrade()) { goldController.Gold -= GoldNeededForUpdate; GoldNeededForUpdate *= UpgradeCostMultiplier; } } } }
private void OnFingerTap(LeanFinger finger) { if (finger.StartedOverGui) { return; } var tappedObj = finger.GetRay().GetRayHitWithMask("Default"); if (tappedObj == gameObject) { var roadController = GetComponentInParent <RoadController>(); animator.SetTrigger(PressTriggerName); if (roadController != null) { GridDataContainer.Instance.RemoveRoad(roadController.RoadGuid); } else { Debug.LogError("У parent нет RoadController"); } } }
private void LeanTouch_OnFingerSet(LeanFinger obj) { if (isLocked) { transform.position += new Vector3(obj.ScreenDelta.x, obj.ScreenDelta.y, 0); if (transform.position.y > yLimit) { var c = image.color; c.a = 0; image.color = c; MapInteractions.Instance.UpdateBuildingPreview(true, obj.GetRay()); } else { var c = image.color; c.a = 1; image.color = c; MapInteractions.Instance.UpdateBuildingPreview(false); } } }