Ejemplo n.º 1
0
    //左右のスクロールから戻るアニメーションを行い、新しいStateを返す
    public Card.State GetNextStateAfterAnimation()
    {
        Card.State result   = m_CurrentState;
        float      duration = 0.4f;
        float      targetX  = 0;

        m_currentHorizontalScrollMode = HorizontalScrollMode.Non;

        switch (m_CurrentState)
        {
        case State.Defection:

            //閾値以上のドラッグかつメンバーがマックスに到達していなければカードがアクティブになる
            if (m_Body.rectTransform.anchoredPosition.x > m_ThresholdHorizontal)
            {
                targetX = m_ThresholdHorizontal;
                result  = SetJoin();
            }
            else
            {
                targetX = 0;
                result  = SetDefection();
            }
            break;

        case State.Join:
            targetX = 0;
            result  = SetDefection();
            break;
        }

        //トゥイーンアニメーション
        m_Body.transform.DOLocalMoveX(targetX, duration, true).SetEase(Ease.OutBack);

        //テキストが揺れる
        m_NameText.Play();

        return(result);
    }
Ejemplo n.º 2
0
    //左右のスクロール中に呼ばれ続ける
    public void DragHorizontal(Vector2 deltaPosition, bool isMemberMax)
    {
        //戦闘参加メンバーがマックスの場合、アクティブでなければスワイプ不可
        if (isMemberMax && m_CurrentState != State.Join)
        {
            return;
        }

        //基本右にしか行けないようにする
        m_Body.rectTransform.anchoredPosition += deltaPosition;
        m_Body.rectTransform.anchoredPosition  = new Vector2(Mathf.Max(m_Body.rectTransform.anchoredPosition.x, 0), 0);

        if (m_currentHorizontalScrollMode == HorizontalScrollMode.Non)
        {
            if (m_Body.rectTransform.anchoredPosition.x > 0)
            {
                m_currentHorizontalScrollMode = HorizontalScrollMode.Right;
            }
        }

        // アクティブを表すパネルの表示
        switch (m_CurrentState)
        {
        case State.Defection:
            if (m_Body.rectTransform.anchoredPosition.x > m_ThresholdHorizontal)
            {
                SetJoin();
            }
            else
            {
                SetDefection();
            }
            break;

        case State.Join:
            SetDefection();
            break;
        }
    }