private void Click()
        {
            State = LoockingState.clicked;
            PointerEventData pointerData = new PointerEventData(EventSystem);

            pointerData.button = PointerEventData.InputButton.Left;
            if (Target != null)
            {
                ExecuteEvents.ExecuteHierarchy(Target, pointerData, ExecuteEvents.pointerDownHandler);
                StartCoroutine(ClickNow());
            }
        }
 private void HandleSpinningState()
 {
     if (circleState >= 1)
     {
         State       = LoockingState.finished;
         circleState = 1;
     }
     if (hasStayed && Target != null)
     {
         SetFillValue(circleState);
         circleState = circleState + Time.deltaTime / RotationDuration;
     }
     else
     {
         Reset();
     }
 }
 private void Reset()
 {
     for (int i = 0; i < RingMesh.colors.Length; i++)
     {
         if (UseOriginalColor)
         {
             RingMesh.colors [i] = new Color(OriginalColor.r, OriginalColor.g, OriginalColor.b, 1);
         }
         else
         {
             RingMesh.colors [i] = new Color(FillColor.r, FillColor.g, FillColor.b, 1);
         }
     }
     Renderer.enabled = false;
     Source.SetColor("_Color", OriginalColor);
     State       = LoockingState.normal;
     circleState = 0;
 }
 private void HandleNormalState()
 {
     if (innerValue > maxInnerValue)
     {
         maxInnerValue = innerValue;
     }
     if (innerValue < minInnerValue)
     {
         minInnerValue = innerValue;
     }
     if (outerValue > maxOuterValue)
     {
         maxOuterValue = outerValue;
     }
     if (outerValue < minOuterValue)
     {
         minOuterValue = outerValue;
     }
     if (theSameFor > DelayBeforeRotation && !IsMin() && Target != null)
     {
         State = LoockingState.spinning;
     }
 }