Пример #1
0
    private void Update()
    {
        if (!gameController.IsZoomedIn && isBeingTouched && Input.touchCount == 0)
        {
            isBeingTouched = false;
            frameAttachable.gameObject.SetActive(true);
            gameController.allowZoomInOut = true;
            directionFromEmptyFrame direction = findDirectionFromEmptyFrame();

            switch (direction)
            {
            case directionFromEmptyFrame.NotNextToEmptyFrame:
                return;

                break;

            case directionFromEmptyFrame.AboveEmptyFrame:
                if (Math.Abs(parentTransform.position.z - initialPosition.z) > (frameSize / 2f))
                {
                    switchFrames(Direction.Up);
                    return;
                }
                break;

            case directionFromEmptyFrame.BelowEmptyFrame:
                if (Math.Abs(parentTransform.position.z - initialPosition.z) > (frameSize / 2f))
                {
                    switchFrames(Direction.Down);
                    return;
                }
                break;

            case directionFromEmptyFrame.LeftOfEmptyFrame:
                if (Math.Abs(parentTransform.position.x - initialPosition.x) > (frameSize / 2f))
                {
                    switchFrames(Direction.Left);
                    return;
                }
                break;

            case directionFromEmptyFrame.RightOfEmptyFrame:
                if (Math.Abs(parentTransform.position.x - initialPosition.x) > (frameSize / 2f))
                {
                    switchFrames(Direction.Right);
                    return;
                }
                break;

            default:
                break;
            }

            parentTransform.position = initialPosition;
            StartCoroutine(releaseDrag());
        }
    }
Пример #2
0
    private void OnMouseDrag()
    {
        gameController.isDragging = true;
        if (Input.touchCount == 1)
        {
            Touch touch = Input.GetTouch(0);
            if (touch.deltaPosition.sqrMagnitude > 0.1f)
            {
                StartCoroutine(resetLaser());
                directionFromEmptyFrame dir = findDirectionFromEmptyFrame();
                if (!gameController.IsZoomedIn && frame != null && dir != directionFromEmptyFrame.NotNextToEmptyFrame)
                {
                    isBeingTouched = true;
                    frameAttachable.gameObject.SetActive(false);
                    gameController.allowZoomInOut = false;
                    Vector3 touchPosition = new Vector3(Input.mousePosition.x, Input.mousePosition.y, transform.position.z - Camera.main.transform.position.z);
                    Vector3 objPosition   = Camera.main.ScreenToWorldPoint(touchPosition);

                    if (parentTransform.Find("Player") != null)
                    {
                        player = parentTransform.Find("Player").gameObject;
                    }

                    switch (dir)
                    {
                    case directionFromEmptyFrame.NotNextToEmptyFrame:
                        return;

                        break;

                    case directionFromEmptyFrame.AboveEmptyFrame:
                        if (objPosition.z <= initialPosition.z && objPosition.z >= (initialPosition.z - frameSize))
                        {
                            parentTransform.position = new Vector3(transform.position.x, frames.transform.position.y, objPosition.z);
                        }
                        break;

                    case directionFromEmptyFrame.BelowEmptyFrame:
                        if (objPosition.z >= initialPosition.z && objPosition.z <= (initialPosition.z + frameSize))
                        {
                            parentTransform.position = new Vector3(transform.position.x, frames.transform.position.y, objPosition.z);
                        }
                        break;

                    case directionFromEmptyFrame.LeftOfEmptyFrame:
                        if (objPosition.x >= initialPosition.x && objPosition.x <= (initialPosition.x + frameSize))
                        {
                            parentTransform.position = new Vector3(objPosition.x, frames.transform.position.y, initialPosition.z);
                        }
                        break;

                    case directionFromEmptyFrame.RightOfEmptyFrame:
                        if (objPosition.x <= initialPosition.x && objPosition.x >= (initialPosition.x - frameSize))
                        {
                            parentTransform.position = new Vector3(objPosition.x, frames.transform.position.y, initialPosition.z);
                        }
                        break;

                    default:
                        break;
                    }
                }
            }
            else
            {
                gameController.isDragging = false;
            }
        }
    }