IEnumerator CoWaitClick()
        {
            isWait    = true;
            clickTime = 0f;
            while (true)
            {
                yield return(null);

                clickTime += Time.deltaTime;

                if (Input.GetMouseButtonDown(0))
                {
                    var clickable = GetClickables(InputEx.GetMouseWorld()).FindAll(x => x.isDouble).PeekMax(x => x.priority);
                    if (clickable == null)
                    {
                        break;
                    }
                    OnDoubleClickAction?.Invoke(clickable);
                    break;
                }

                if (clickTime > doubleInterval)
                {
                    var clickable = GetClickables(InputEx.GetMouseWorld()).FindAll(x => x.isOnce).PeekMax(x => x.priority);
                    if (clickable == null)
                    {
                        break;
                    }
                    OnOnceClickAction?.Invoke(clickable);
                    break;
                }
            }
            isWait = false;
        }
 private void Start()
 {
     ClickSystem.instance.OnOnceClickAction += (clickable) => {
         if (clickable != this)
         {
             return;
         }
         OnOnceClickAction?.Invoke(gameObject);
     };
     ClickSystem.instance.OnDoubleClickAction += (clickable) => {
         if (clickable != this)
         {
             return;
         }
         OnDoubleClickAction?.Invoke(gameObject);
     };
 }