///<summary>互斥动作中攻击部分的处理</summary>
    void huchi_action_gongji()
    {
        if (Input.GetKeyDown(KeyCode.Mouse0)) //按下鼠标左键
        {
            if (wuqi_number == 1)             //一号武器
            {
                if (action_ani_number < action_ani_name[action_ani_arraynumber].Length)
                {
                    if (mouse0_keytime - action_ani_lasttime > action_ani_doingtime[action_ani_arraynumber][max(action_ani_number - 1, 0)] || action_ani_number == 0)
                    {
                        action_ani_lasttime = Time.fixedTime;
                        if (action_ani_number - 1 >= 0)
                        {
                            ani.SetBool(action_ani_name[action_ani_arraynumber][action_ani_number - 1], false);
                        }
                        ani.SetBool(action_ani_name[action_ani_arraynumber][action_ani_number], true);
                        action_ani_number++;
                        action_ani_doing = true;
                        trailingmesh_1.setVisual();
                        trailingmesh_2.setVisual();
                    }
                }
            }
            if (wuqi_number == 3)         //三号武器
            {
                if (action_ani_number < action_ani_name[action_ani_arraynumber].Length)
                {
                    if (mouse0_keytime - action_ani_lasttime > action_ani_doingtime[action_ani_arraynumber][max(action_ani_number - 1, 0)] || action_ani_number == 0)
                    {
                        action_ani_lasttime = Time.fixedTime;
                        if (action_ani_number - 1 >= 0)
                        {
                            ani.SetBool(action_ani_name[action_ani_arraynumber][action_ani_number - 1], false);
                        }
                        ani.SetBool(action_ani_name[action_ani_arraynumber][action_ani_number], true);
                        action_ani_number++;
                        action_ani_doing = true;
                        // trailingmesh_1.setVisual();
                        // trailingmesh_2.setVisual();
                    }
                }
            }
            if (wuqi_number == 4)         //四号武器
            {
                if (action_ani_number < action_ani_name[action_ani_arraynumber].Length)
                {
                    if (mouse0_keytime - action_ani_lasttime > action_ani_doingtime[action_ani_arraynumber][max(action_ani_number - 1, 0)] || action_ani_number == 0)
                    {
                        action_ani_lasttime = Time.fixedTime;
                        if (action_ani_number - 1 >= 0)
                        {
                            ani.SetBool(action_ani_name[action_ani_arraynumber][action_ani_number - 1], false);
                            attackSystem.set_AttackObject_number(4);
                        }
                        else
                        {
                            attackSystem.set_AttackObject_number(3);
                        }
                        ani.SetBool(action_ani_name[action_ani_arraynumber][action_ani_number], true);
                        action_ani_number++;
                        action_ani_doing = true;
                    }
                }
            }
        }

        if (action_ani_doing)       //当互斥动画进行时
        {
            if (Time.fixedTime - action_ani_lasttime < action_ani_doingtime[action_ani_arraynumber][action_ani_number - 1])
            {
                if (wuqi_number == 1)             //一号武器的动作效果
                {
                    transform.Translate(Vector3.forward * speed * Time.deltaTime);
                }
                if (wuqi_number == 3)             //三号武器的动作效果
                {
                    // transform.Translate(Vector3.forward*speed*2.5f*Time.deltaTime);
                    if (!is_onFloor)
                    {
                        transform.Translate(Vector3.up * -g_inScene * Time.deltaTime);
                    }
                }
                if (wuqi_number == 4)             //四号武器的动作效果
                {
                    if (action_ani_number == 1)
                    {
                        transform.Translate(Vector3.forward * speed * 2f * Time.deltaTime);
                    }
                    transform.Translate(Vector3.forward * speed * 0.5f * Time.deltaTime);
                }
            }

            if (wuqi_number == 1)         //一号武器的攻击效果
            {
                if (Time.fixedTime - action_ani_lasttime >= action_ani_doingtime[action_ani_arraynumber][action_ani_number - 1] && Time.fixedTime - action_ani_lasttime <= action_ani_doingtime[action_ani_arraynumber][action_ani_number - 1] + 0.01f)
                {
                    attackSystem.set_Attack_flag(true);                    //创建或现实攻击用物体
                }
            }
            if (wuqi_number == 3)         //三号武器的攻击效果
            {
                if (Time.fixedTime - action_ani_lasttime >= action_ani_doingtime[action_ani_arraynumber][action_ani_number - 1] - 0.4f && Time.fixedTime - action_ani_lasttime <= action_ani_doingtime[action_ani_arraynumber][action_ani_number - 1] - 0.39f)
                {
                    attackSystem.set_Attack_flag(true);                    //创建或现实攻击用物体
                }
            }
            if (wuqi_number == 4)         //四号武器的攻击效果
            {
                if (Time.fixedTime - action_ani_lasttime >= action_ani_doingtime[action_ani_arraynumber][action_ani_number - 1] && Time.fixedTime - action_ani_lasttime <= action_ani_doingtime[action_ani_arraynumber][action_ani_number - 1] + 0.01f)
                {
                    attackSystem.set_Attack_flag(true);                    //创建或现实攻击用物体
                }
            }


            if (Time.fixedTime - action_ani_lasttime > action_ani_delaytime[action_ani_arraynumber][action_ani_number - 1])     //倒计时
            {
                ani.SetBool(action_ani_name[action_ani_arraynumber][action_ani_number - 1], false);
                ani.SetBool("defult", true);
                action_ani_number = 0;
                action_ani_doing  = false;
                trailingmesh_1.setUnVisual();
                trailingmesh_2.setUnVisual();
            }

            setWASDandSpaceDefult();            //将WASD和空格相关的动画设置为默认状态
        }
        else
        {
            WASD_and_Space_Down();            //按下WASD和空格键时的反应
        }
    }
Ejemplo n.º 2
0
    ///<summary>互斥动作中攻击部分的处理</summary>
    void huchi_action_gongji()
    {
        if (mouse0_downing)       //按下鼠标左键
        {
            if (wuqi_number == 1) //一号武器
            {
                if (action_ani_number < action_ani_name[action_ani_arraynumber].Length)
                {
                    if (mouse0_keytime - action_ani_lasttime > action_ani_doingtime[action_ani_arraynumber][max(action_ani_number - 1, 0)] || action_ani_number == 0)
                    {
                        action_ani_lasttime = Time.fixedTime;
                        if (action_ani_number - 1 >= 0)
                        {
                            ani.SetBool(action_ani_name[action_ani_arraynumber][action_ani_number - 1], false);
                        }
                        ani.SetBool(action_ani_name[action_ani_arraynumber][action_ani_number], true);
                        action_ani_number++;
                        action_ani_doing = true;
                        trailingmesh.setVisual();
                    }
                }
            }
            if (wuqi_number == 3)         //三号武器
            {
                if (action_ani_number < action_ani_name[action_ani_arraynumber].Length)
                {
                    if (mouse0_keytime - action_ani_lasttime > action_ani_doingtime[action_ani_arraynumber][max(action_ani_number - 1, 0)] || action_ani_number == 0)
                    {
                        action_ani_lasttime = Time.fixedTime;
                        if (action_ani_number - 1 >= 0)
                        {
                            ani.SetBool(action_ani_name[action_ani_arraynumber][action_ani_number - 1], false);
                        }
                        ani.SetBool(action_ani_name[action_ani_arraynumber][action_ani_number], true);
                        action_ani_number++;
                        action_ani_doing = true;
                        trailingmesh.setVisual();
                    }
                }
            }
        }

        if (action_ani_doing)       //当互斥动画进行时
        {
            // Debug.Log("wuqi_number:"+wuqi_number);
            if (Time.fixedTime - action_ani_lasttime < action_ani_doingtime[action_ani_arraynumber][action_ani_number - 1])
            {
                if (wuqi_number == 1)             //一号武器的动作效果
                {
                    transform.Translate(Vector3.forward * speed * Time.deltaTime);
                }
                if (wuqi_number == 3)             //三号武器的动作效果
                {
                    transform.Translate(Vector3.forward * speed * 3.5f * Time.deltaTime);
                    // if(!is_onFloor)
                    // {
                    //  transform.Translate(Vector3.up*0.5f*-g_inScene*Time.deltaTime);
                    // }
                }
            }

            if (wuqi_number == 1)         //一号武器的攻击效果
            {
                if (Time.fixedTime - action_ani_lasttime >= action_ani_doingtime[action_ani_arraynumber][action_ani_number - 1] / 2 && Time.fixedTime - action_ani_lasttime <= action_ani_doingtime[action_ani_arraynumber][action_ani_number - 1] / 2 + 0.01f)
                {
                    attackSystem.set_Attack_flag(true);                    //创建或现实攻击用物体
                }
            }
            if (wuqi_number == 3)         //三号武器的攻击效果
            {
                if (Time.fixedTime - action_ani_lasttime <= 0.05f)
                {
                    attackSystem.set_Attack_flag(true);                    //创建或现实攻击用物体
                }
            }

            if (Time.fixedTime - action_ani_lasttime > action_ani_delaytime[action_ani_arraynumber][action_ani_number - 1])     //倒计时
            {
                ani.SetBool(action_ani_name[action_ani_arraynumber][action_ani_number - 1], false);
                ani.SetBool("defult", true);
                action_ani_number = 0;
                action_ani_doing  = false;
                trailingmesh.setUnVisual();
            }

            setWASDandSpaceDefult();            //将WASD和空格相关的动画设置为默认状态
        }
        else
        {
            WASD_and_Space_Down();            //按下WASD和空格键时的反应
        }
    }