public void SetCatchClicksState(ClickEventControllerStates state) { StartCoroutine(WaitEndFrame(() => { clickEventControllerState = state; })); }
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; } }