Exemple #1
0
    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);
            }
        }
Exemple #4
0
    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;
    }
Exemple #6
0
        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;
                    }
                }
            }
        }
Exemple #8
0
    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);
            }
        }
    }