2017-01-01 2 views
1

Donc, j'ai un GUI Textfield pour l'utilisateur d'entrer son nom qui fonctionne juste bien sur l'éditeur, mais ne fonctionne pas sur la version Android.Unity 5- GUI Textfield ne fonctionne pas correctement sur Android Build (La peau pour une raison quelconque ne fonctionne pas et je ne peux pas changer le texte)

Le texte peut être parfaitement changé dans l'éditeur: Me changing the name in the editor

Mais contrairement à l'éditeur, quand je construis l'APK et lancer mon application dans mon appareil Android, tout se passe comme ceci:

1- Je clique sur le champ de texte et le clavier Android apparaît automatiquement.
2- J'écris le nom et le champ change DOIT changer
3- Je clique sur terminé sur le clavier Android
4- Le texte change de nouveau en "Nom" ce qui signifie que la chaîne n'est pas stockée?

Oh et la police que j'ai définie sur ma GUI Skin ne fonctionne pas non plus sur la version Android.

Le code est relativement simple:

void OnGUI(){ 
    GUI.skin = StandardStyle; 
    if (AllowGUI) { 
     if (PlayerPrefs.GetInt ("Language") == 0) { 
      Name = GUI.TextField (new Rect (Screen.width/6.69230f, Screen.height/2.26818f, 340, 50), Name, 15); 
      CompanyName = GUI.TextField (new Rect (Screen.width/6.69230f, Screen.height/1.71f, 340, 50), CompanyName, 25); 
     }else if(PlayerPrefs.GetInt ("Language") == 1){ 
      Name = GUI.TextField (new Rect (Screen.width/6.69230f, Screen.height/2.0818f, 340, 50), Name, 15); 
      CompanyName = GUI.TextField (new Rect (Screen.width/6.69230f, Screen.height/1.61f, 340, 50), CompanyName, 25); 
     } 
    } 
} 

Répondre

1

Vous utilisez IMGUI qui est conçu pour être utilisé comme un outil de l'éditeur. Lorsque vous utilisez tout ce qui nécessite la fonction OnGUI, vous devez vous arrêter et rechercher une autre solution.

Pour obtenir des informations d'un utilisateur, utilisez InputField fourni avec la nouvelle unité d'interface utilisateur Unity (uGUI). Le # 3 sur this poste explique comment détecter soumettre sur un InputField.

Pour créer un InputField, allez à gameobject ->UI ->sur le terrain d'entrée.

Vous pouvez en savoir plus sur la nouvelle interface utilisateur here.

+1

merci l'homme :))) – Anopey