示例#1
0
    private void Move()
    {
        if (m_BuildingUp)
        {
            if (Ground())
            {
                m_MoveDir.x = 0;
            }

            float move = InputManager.instance.CheckAxis(player);

            Debug.Log("Check du buildup");
            if (Mathf.Abs(move) > 0.16f)
            {
                if (move < 0 && m_LookRight)
                {
                    transform.localScale = new Vector3(transform.localScale.x * -1, transform.localScale.y, transform.localScale.z);
                    m_LookRight          = false;
                    if (m_CurrentCube)
                    {
                        if (m_CurrentCubeScript.CheckTurnAround())
                        {
                            transform.localScale = new Vector3(transform.localScale.x * -1, transform.localScale.y, transform.localScale.z);
                            m_LookRight          = true;
                            Debug.Log("Turn left cancel");
                        }
                    }
                }
                else if (move > 0 && !m_LookRight)
                {
                    transform.localScale = new Vector3(transform.localScale.x * -1, transform.localScale.y, transform.localScale.z);
                    m_LookRight          = true;

                    if (m_CurrentCube)
                    {
                        if (m_CurrentCubeScript.CheckTurnAround())
                        {
                            transform.localScale = new Vector3(transform.localScale.x * -1, transform.localScale.y, transform.localScale.z);
                            m_LookRight          = false;
                            // Debug.Log("Turn right cancel");
                        }
                    }
                }
            }


            return;
        }

        m_CurrentMovement = InputManager.instance.CheckAxis(player);

        // if (Math.Abs(m_CurrentMovement) > 0.0001f)
        //     Debug.Log(m_CurrentMovement);
        if (Mathf.Abs(m_CurrentMovement) > 0.16f)
        {
            m_Anim.SetBool("walking", true);

            if (m_CurrentMovement < -0.1f && m_LookRight)
            {
                Debug.Log("Mouvement a gauche et regarde a droite");
                transform.localScale = new Vector3(transform.localScale.x * -1, transform.localScale.y, transform.localScale.z);
                m_LookRight          = false;
                if (m_CurrentCube)
                {
                    if (m_CurrentCubeScript.CheckTurnAround())
                    {
                        transform.localScale = new Vector3(transform.localScale.x * -1, transform.localScale.y, transform.localScale.z);
                        m_LookRight          = true;
                    }
                }

                m_MoveDir.x  *= -1; // m_CurrentMovement * m_PlayerCurrentSpeed;
                m_RB.velocity = new Vector3(m_MoveDir.x, m_RB.velocity.y, 0);
                return;
            }
            else if (m_CurrentMovement < -0.1f)
            {
                Debug.Log("Continue d'avoir le stick a gauche");
                m_MoveDir.x   = m_CurrentMovement * m_PlayerCurrentSpeed;
                m_RB.velocity = new Vector3(m_MoveDir.x, m_RB.velocity.y, 0);
                return;
            }

            if (m_CurrentMovement > 0.1f && !m_LookRight)
            {
                Debug.Log("Mouvement a droite et regarde a gauche");
                transform.localScale = new Vector3(transform.localScale.x * -1, transform.localScale.y, transform.localScale.z);
                m_LookRight          = true;
                if (m_CurrentCube)
                {
                    if (m_CurrentCubeScript.CheckTurnAround())
                    {
                        transform.localScale = new Vector3(transform.localScale.x * -1, transform.localScale.y, transform.localScale.z);
                        m_LookRight          = false;
                    }
                }

                m_MoveDir.x  *= -1; // m_CurrentMovement * m_PlayerCurrentSpeed;
                m_RB.velocity = new Vector3(m_MoveDir.x, m_RB.velocity.y, 0);
                return;
            }
            else if (m_CurrentMovement > 0.1f)
            {
                Debug.Log("Continue d'avoir le stick a droite");
                m_MoveDir.x   = m_CurrentMovement * m_PlayerCurrentSpeed;
                m_RB.velocity = new Vector3(m_MoveDir.x, m_RB.velocity.y, 0);
                return;
            }

            Debug.Log("Cas weird, remise a zero");
            // m_MoveDir.x = 0;
            m_MoveDir.x   = m_CurrentMovement * m_PlayerCurrentSpeed;
            m_RB.velocity = new Vector3(m_MoveDir.x, m_RB.velocity.y, 0);

            // m_RB.velocity = new Vector3( m_MoveDir.x, m_RB.velocity.y,0);
            return;
        }
        else
        {
            if (Ground())
            {
                m_MoveDir.x = 0;
            }

            m_Anim.SetBool("walking", false);

            //Debug.Log("no move");
        }
    }