[Résolu] N'autoriser que les chiffres et le point

Toutes les questions sur le développement Mobile, y compris la partie script.
altozinzin
Messages : 11
Inscription : 19 Oct 2019 14:40

[Résolu] N'autoriser que les chiffres et le point

Message par altozinzin » 19 Oct 2019 18:08

Et oui, c'est encore moi.
Bonjour.

Je voudrais faire en sorte qu'on ne puisse rentrer dans mon InputField que les chiffres de 0 à 10, ainsi que le point.

Cependant le Input.GetKey ne semble pas fonctionner sous Android. J'ai essayé différents KeyCode.
Voici mon code:

Code : Tout sélectionner

 public void Verification_clavier(InputField Case_active)
    {
       
        // on regarde si on la touche pressée est autorisée
      
        if (Input.GetKey(KeyCode.Keypad1) || Input.GetKey(KeyCode.Alpha1) || Input.GetKey("1"))
        { 
        Debug.Log("ca marche"); 
        }
                    
        
        else
        {
            Debug.Log("ca ne marche pas");
           
        }
        }
et bien sur, le résultat est un "ca ne marche pas".
Merci à la communauté!
Dernière édition par altozinzin le 21 Oct 2019 19:04, édité 1 fois.

altozinzin
Messages : 11
Inscription : 19 Oct 2019 14:40

Re: N'autoriser que les chiffres et le point

Message par altozinzin » 20 Oct 2019 22:47

En attendant, je fais ça, mais je ne trouve pas ça très propre.

Code : Tout sélectionner

   if (Case_active.text[Case_active.text.Length-1] == '0' || Case_active.text[Case_active.text.Length - 1] == '1' || Case_active.text[Case_active.text.Length - 1] == '2' || Case_active.text[Case_active.text.Length - 1] == '3' || Case_active.text[Case_active.text.Length - 1] == '4' || Case_active.text[Case_active.text.Length - 1] == '5' || Case_active.text[Case_active.text.Length - 1] == '6' || Case_active.text[Case_active.text.Length - 1] == '7' || Case_active.text[Case_active.text.Length - 1] == '8' || Case_active.text[Case_active.text.Length - 1] == '9' || Case_active.text[Case_active.text.Length - 1] == '.')
        { }
        
        else
        {
            Case_active.text = Case_active.text.Substring(0, Case_active.text.Length - 1);
	 }

Avatar de l’utilisateur
Alesk
Messages : 2296
Inscription : 13 Mars 2012 09:09
Localisation : Bordeaux - France
Contact :

Re: N'autoriser que les chiffres et le point

Message par Alesk » 21 Oct 2019 10:03

Salut,

Une piste ici : https://forum.unity.com/threads/ui-inpu ... rs.267488/

Ce qui donne ce bout de code à assigner à ton inputField:

Code : Tout sélectionner

using UnityEngine;
using UnityEngine.UI;

[RequireComponent(typeof(InputField))]
public class RestrictInputField : MonoBehaviour
{

    public string restriction = "0123456789.";
    private InputField field;

    void Awake(){
        field = GetComponent<InputField>();
    }

    private char RestrictToNumber (string text, int charIndex, char addedChar){
        if(restriction.IndexOf(addedChar)<0){
            return (char)0;
        }else{
            return addedChar;
        }
    }
    void OnEnable(){
        field.onValidateInput += RestrictToNumber;
    }

    void OnDisable(){
        field.onValidateInput -= RestrictToNumber;
    }
}


altozinzin
Messages : 11
Inscription : 19 Oct 2019 14:40

Re: N'autoriser que les chiffres et le point

Message par altozinzin » 21 Oct 2019 19:04

Merci beaucoup. C'est nickel :-) Pile ce que je cherchais.
Merci à toi et à la communauté !!

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 5243
Inscription : 28 Avr 2014 11:57
Localisation : Toulouse

Re: [Résolu] N'autoriser que les chiffres et le point

Message par boubouk50 » 25 Oct 2019 09:11

Il est possible d'initialiser directement l'inputField avec une validation décimale. C'est déjà fait:
https://docs.unity3d.com/2017.3/Documen ... cimal.html
L'impossibilité de mettre plusieurs '.' semble ne pas être pris en compte, mais cela peut être vérifié d'après ce lien:
https://answers.unity.com/questions/978 ... point.html
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Répondre

Revenir vers « Développement plateformes mobile Iphone et Android »