private void FixedUpdate()
    {
        //move player
        Vector2 touchPosition  = virtualJoystic.GetPosition();
        float   moveHorizontal = touchPosition.x;
        float   moveVertical   = touchPosition.y;
        Vector3 movement       = new Vector3(moveHorizontal, 0.0f, moveVertical);

        rb.velocity = (movement.magnitude > 1) ? movement.normalized * playerSpeed : movement * playerSpeed;

        //rotate player to faca movement direction
        if (moveHorizontal != 0.0f || moveVertical != 0.0f)
        {
            transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.LookRotation(movement), 0.15F);
        }


        //Keep player in play area
        rb.position = new Vector3(
            Mathf.Clamp(rb.position.x, xMin, xMax),
            0.0f,
            Mathf.Clamp(rb.position.z, zMin, zMax)
            );
    }