/// <summary>
    /// パネル移動のTweenを作成
    /// </summary>
    /// <param name="panelOperator"></param>
    /// <param name="endPos"></param>
    /// <returns></returns>
    private Tween CreatePanelMoveTween(BattleMapStatusPanelOperator panelOperator, Vector2 endPos)
    {
        // パネルを取得
        BattleMapStatusPanelObject panelObject = panelOperator.GetStatusPanelObject();

        // 閉じるボタンを非活性
        panelObject.CancelButton.SetActive(false);

        RectTransform rect = panelObject.GameObject.GetComponent <RectTransform>();

        // アンカー変更で位置がずれるので戻す用
        Vector2 old = rect.position;

        // アンカーを変更
        rect.anchorMin = new Vector2(0.5f, 0);
        rect.anchorMax = new Vector2(0.5f, 0);

        // アンカー変更でずれた位置を戻す
        rect.position = old;

        // アンカーポジションを指定位置へだんだん移動
        Tween tween = DOTween.To(
            () => rect.anchoredPosition,
            v =>
        {
            rect.anchoredPosition = v;
        },
            endPos,
            GetPrepareDuration());

        tween.SetEase(Ease.OutQuart);

        return(tween);
    }
예제 #2
0
    private Tween CreatePanelMoveTween(BattleMapStatusPanelOperator panelOperator, Vector2 endPos)
    {
        BattleMapStatusPanelObject panelObject = panelOperator.GetStatusPanelObject();

        RectTransform rect = panelObject.GameObject.GetComponent <RectTransform>();

        Vector2 old = rect.position;

        rect.anchorMin = new Vector2(0.5f, 0);
        rect.anchorMax = new Vector2(0.5f, 0);

        rect.position = old;

        Tween tween = DOTween.To(
            () => rect.anchoredPosition,
            v =>
        {
            rect.anchoredPosition = v;
        },
            endPos,
            1.0f);

        tween.SetEase(Ease.OutQuart);

        return(tween);
    }
    /// <summary>
    /// パネルのシェイクのTweenを作成
    /// </summary>
    /// <param name="battleResultSet"></param>
    /// <param name="battleResult"></param>
    /// <returns></returns>
    private Sequence CreatePanelShakeTween(BattleResultSet battleResultSet, BattleResult battleResult)
    {
        BattleMapStatusPanelObject panelObject = GetPanelObject(battleResultSet, battleResult);

        RectTransform rectPanel = panelObject.GameObject.GetComponent <RectTransform>();

        Sequence seq = DOTween.Sequence();

        // パネルのシェイク
        Tweener shakePanel = rectPanel.DOShakeAnchorPos(bc.GetBaseDuration(), SHAKE_POWER * 40);

        seq.Append(shakePanel);

        // HPを減らす
        int hp = int.Parse(panelObject.HpSubText.text);

        int damage = battleResult.ToDamage;

        int restHp = hp - damage;

        if (restHp < 0)
        {
            restHp = 0;
        }

        Tween tween = DOTween.To(
            () => hp,
            (v) =>
        {
            hp = v;
            panelObject.HpSubText.text = "" + v;
        },
            restHp,
            1.0f);

        tween.SetEase(Ease.Linear);

        seq.Append(tween);

        return(seq);
    }
예제 #4
0
    private void MinusStatus()
    {
        BattleMapStatusPanelOperator panelOperator = statusGenerator.GetStatusPanelOperator();
        BattleMapStatusPanelObject   panelObject   = panelOperator.GetStatusPanelObject();

        DOTween.Init();
        DOTween.defaultAutoPlay = AutoPlay.None;

        int hp = 40;

        Tween tween = DOTween.To(
            () => hp,
            (v) =>
        {
            hp = v;
            panelObject.HpText.text = "" + v;
        },
            0,
            1.0f);

        tween.SetEase(Ease.Linear);

        tween.Play();
    }