美文网首页我爱编程
在 Unity 中使用 DOTween 实现 A Dark Ro

在 Unity 中使用 DOTween 实现 A Dark Ro

作者: wuqxuan | 来源:发表于2016-07-06 17:44 被阅读1938次

    思路:

    1. 使用DOTween的DOPunchAnchorPos方法移动UI;
    2. 使用DOTween的DOFade方法实现被攻击掉落生命值时的淡入淡出效果。
    Unity实现的战斗效果.gif

    实现代码:

    BattleController.cs
    /// <summary> 攻击 </summary>
        void Attack(RectTransform attacker, Vector2 directionAndstrength, Text suffererLossHPText, Text sufferCurrentHPText, int lossHP, ref int suffererCurrentHP)
        {
            if (!m_isBattleOver)
            {
                // 攻击动画
                attacker.DOPunchAnchorPos(directionAndstrength, 0.2f, 0, 0f, false);
                // 受攻击一方生命值减小,减小值为攻击方的攻击力
                suffererCurrentHP -= lossHP;
    
                m_battleView.SetCurrentHP(sufferCurrentHPText, suffererCurrentHP);
                // Debug.Log("currentHP:" + suffererCurrentHP);
                // 受攻击一方显示生命值减小的值
                suffererLossHPText.text = "-" + lossHP.ToString();
                // 调用减小生命值动画效果
                m_battleView.LossHPAnimation(suffererLossHPText);
            }
    
        }
    

    RectTransform (Unity UI 4.6)

    DOPunchAnchorPos(Vector2 punch, float duration, int vibrato, float elasticity, boolsnapping)
    

    Punches the target's anchoredPosition with the given values.
    punch: punch The direction and strength of the punch (added to the RectTransform's current position).
    duration: The duration of the tween.
    vibrato: Indicates how much will the punch vibrate.
    elasticity: Represents how much (0 to 1) the vector will go beyond the starting position when bouncing backwards. 1 creates a full oscillation between the punch direction and the opposite direction, while 0 oscillates only between the punch and the start position.
    **snapping: ** If TRUE the tween will smoothly snap all values to integers.

    BattleView.cs
    /// <summary> 被攻击时掉落生命值动画效果 </summary>
        public void LossHPAnimation(Text lossHPText)
        {
            // FadeIn
            lossHPText.DOFade(1f, 0f);
            // FadeOut
            lossHPText.DOFade(0f, 1.5f);
        }
    

    Text (Unity UI 4.6)

    DOFade(float to, float duration)
    

    Fades the target's alpha to the given value.

    Unity5.4, C#
    Github

    相关文章

      网友评论

        本文标题:在 Unity 中使用 DOTween 实现 A Dark Ro

        本文链接:https://www.haomeiwen.com/subject/sivkjttx.html