栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

unity 游戏内实现3连击动画

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

unity 游戏内实现3连击动画

public class Demo_01 : MonoBehaviour
{
    Animator animator;
    void Start()
    {
        animator = GetComponent();
    }
    void Update()
    {
        bool input_attack = Input.GetMouseButtonDown(0);
        if (input_attack)
        {
            var info = animator.GetCurrentAnimatorStateInfo(0);
            //第一段连招  在休闲状态下可以使用
            if (info.IsName("Idle_A"))
            {
                //动画播放之间有0.1秒过渡效果  避免切入过于突兀
                animator.CrossFade("Atk1", 0.1f);
            }
            else if (info.IsName("Atk1"))//第二段必须在第一段状态下
            {
                if (CanAttak(info, 0.1f, 1f))
                {
                    animator.CrossFade("Atk2",0.1f);
                }
            }
            else if (info.IsName("Atk2"))//第三段必须在第二段状态下
            {
                if (CanAttak(info, 0.1f, 1f))
                {
                    animator.CrossFade("Atk3", 0.1f);
                }
            }
            else if (info.IsName("Atk3"))//第四段必须在第三段状态下
            {
                if (CanAttak(info, 0.1f, 1f))
                {
                    animator.CrossFade("Atk4", 0.1f);
                }
            }
        }
    }
    /// 
    /// 可以攻击
    /// 
    private bool CanAttak(AnimatorStateInfo info, float start, float end)
    {
        return info.normalizedTime>=start&&info.normalizedTime<=end;
    }
}

把脚本挂在人物的身上,在动画控制器里面不需要设置动画触发条件,我们完全靠代码来控制

只需要把攻击状态连上一条返回Idle状态的线即可,因为我们在休闲状态触发攻击之后,我们还要返回原来的休闲状态,否则人物动画会卡死在攻击动画攻击完毕那一刻,动画播放之间有0.1秒过渡效果  避免切入过于突兀

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/677533.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号