Ejemplo n.º 1
0
 public void SetCatchClicksState(ClickEventControllerStates state)
 {
     StartCoroutine(WaitEndFrame(() =>
     {
         clickEventControllerState = state;
     }));
 }
Ejemplo n.º 2
0
        void LateUpdate()
        {
            if (clickEventControllerState == ClickEventControllerStates.None)
            {
                return;
            }

            if (Input.GetButtonDown("Fire1"))
            {
                if (IsPointerOverUIElement())
                {
                    return;
                }

                clickDownPosition = GetMousePos();

                clickFigure = CheckRayCast(GetMousePos(), Vector3.forward);
                clickFigure?.SetRotate(true);
                clickEventControllerState = ClickEventControllerStates.WaitUnpress;
            }


            if (Input.GetButtonUp("Fire1"))
            {
                if (clickFigure != null)
                {
                    clickFigure.SetRotate(false);
                }

                if (clickEventControllerState == ClickEventControllerStates.WaitUnpress)
                {
                    var clickUpPosition = GetMousePos();

                    if (Vector3.Distance(clickDownPosition, clickUpPosition) < 0.001f)
                    {
                        PointCut(clickDownPosition);
                    }
                    else
                    {
                        //Закоментил. тк для косой разрезающей не до конца реализован алгоритм.
                        //SlideCut(clickDownPosition, clickUpPosition);
                    }
                }

                clickEventControllerState = ClickEventControllerStates.CatchClicks;
            }
        }