public bool getButton(PS3Button inputButton)
    {
        //se è un bottone ritorna il valore dell'input standard, se è un asse, controlla i valori del frame attuale
        GenericInput actualInput = getUsedButton(inputButton);

        if (actualInput.button != Button.Default)
        {
            return(Input.GetButton(actualInput.button.ToString()));
        }
        else if (actualInput.axis != Axis.Default)
        {
            if (actualInput.axisDirection == AxisDirection.Positive || actualInput.axisDirection == AxisDirection.Default)
            {
                if (actualInput.axisValue > 0.5f)
                {
                    return(true);
                }
            }
            else if (actualInput.axisDirection == AxisDirection.Negative)
            {
                if (actualInput.axisValue < -0.5f)
                {
                    return(true);
                }
            }
        }
        return(false);
    }
    public bool getButtonUp(PS3Button inputButton)
    {
        //se è un bottone ritorna il valore dell'input standard, se è un asse, controlla i valori del frame attuale e di quello precedente
        //anche in base all'asse negativo o positivo
        GenericInput actualInput = getUsedButton(inputButton);

        if (actualInput.button != Button.Default)
        {
            return(Input.GetButtonUp(actualInput.button.ToString()));
        }
        else if (actualInput.axis != Axis.Default)
        {
            if (actualInput.axisDirection == AxisDirection.Positive || actualInput.axisDirection == AxisDirection.Default)
            {
                if (actualInput.axisValue < 0.5f && actualInput.axisValueOld >= 0.5f)
                {
                    return(true);
                }
            }
            else if (actualInput.axisDirection == AxisDirection.Negative)
            {
                if (actualInput.axisValue > -0.5f && actualInput.axisValueOld <= -0.5f)
                {
                    return(true);
                }
            }
        }
        return(false);
    }
 public GenericInput getUsedButton(PS3Button physicalInput)
 {
     for (int i = 0; i < buttonElements.Length; i++)
     {
         if (buttonElements[i] != null && buttonElements[i].physicalButton == physicalInput)
         {
             return(buttonElements[i].getStandardInput());
         }
     }
     return(new GenericInput());
 }
    /*
     * [System.Serializable]
     * public class AxisElement
     * {
     *      public string scriptInterface;
     *      public PS3Button physicalButton;
     *      public Axis axis360Windows;
     *      public Axis axis360Mac;
     *      public Axis axisPS3Mac;
     *      public Axis axisPS4Mac;
     *
     *      //METODI
     *      public string getStandardName()
     *      {
     *              //Axis tempAxis;
     *              switch (controllerType)
     *              {
     *              case ControllerType.Windows360:
     *                      return axis360Windows.ToString();
     *                      break;
     *              case ControllerType.Mac360:
     *                      return axis360Mac.ToString();
     *                      break;
     *              case ControllerType.MacPS3:
     *                      return axisPS3Mac.ToString();
     *                      break;
     *              case ControllerType.MacPS4:
     *                      return axisPS4Mac.ToString();
     *                      break;
     *              default:
     *                      return scriptInterface;
     *                      break;
     *              }
     *      }
     * }
     *
     * [SerializeField]
     * public AxisElement[] axisElement;
     */

    public Sprite getSprite(PS3Button physicalInput)
    {
        for (int i = 0; i < buttonElements.Length; i++)
        {
            if (buttonElements[i] != null && buttonElements[i].physicalButton == physicalInput)
            {
                return(buttonElements[i].getSprite());
            }
        }
        return(new Sprite());
    }
    public float getAxisRaw(PS3Button inputButton)
    {
        GenericInput actualInput = getUsedButton(inputButton);

        if (actualInput.axis != Axis.Default)
        {
            return(Input.GetAxisRaw(actualInput.axis.ToString()));
        }
        else if (actualInput.button != Button.Default)
        {
            if (Input.GetButton(actualInput.button.ToString()))
            {
                return(1.0f);
            }
            else
            {
                return(0.0f);
            }
        }

        return(0.0f);
    }