Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by alpha-ro · Jun 22, 2013 at 03:07 PM · networkingmenutextfieldtypemain

GUILayout.TextField doesn't accept inputs

Well, i'm pretty sure this is a common problem caused for insufficient knowledge, i tried veryfing other questions and threads but i don't get them at all because they all have always something more specific as, for example, making a button dissapear or showing again depending on a certain state and some other things like that, but my problem is more simple i think.

I'm trying to learn networking since i want to make my game multiplayer, and, like in survivors, have a dialog to start the game as the server and another dialog to connect to another server, in which i want to have a Text Field to write the IP Address into. I managed to get my preferred layout look, but, i can't type anything into the TextField, i read in other questions that i must make sure i'm not calling the content inside the textfield from any other function, so i only called it from function Start() to set it to a default value ("192.168.1.100", only to test the connection, because this is my private IP at the moment), and i also tried to delete this call from Start() so it wouldn't got changed never, but Unity says:

 NullReferenceException: Object reference not set to an instance of an object
 UnityEngine.TextEditor.ClampPos () (at C:/BuildAgent/work/7535de4ca26c26ac/Runtime/Export/TextEditor.cs:1185)
 UnityEngine.GUI.DoTextField (Rect position, Int32 id, UnityEngine.GUIContent content, Boolean multiline, Int32 maxLength, UnityEngine.GUIStyle style) (at C:/BuildAgent/work/7535de4ca26c26ac/Runtime/ExportGenerated/Editor/GUI.cs:496)
 UnityEngine.GUILayout.DoTextField (System.String text, Int32 maxLength, Boolean multiline, UnityEngine.GUIStyle style, UnityEngine.GUILayoutOption[] options) (at C:/BuildAgent/work/7535de4ca26c26ac/Runtime/ExportGenerated/Editor/GUILayout.cs:96)
 UnityEngine.GUILayout.TextField (System.String text, UnityEngine.GUILayoutOption[] options) (at C:/BuildAgent/work/7535de4ca26c26ac/Runtime/ExportGenerated/Editor/GUILayout.cs:57)
 Menu Principal.OnGUI () (at Assets/Mis Scripts/Menu Principal.js:225)

That would mean that anytime i want to use a TextField, i can't leave it 'empty', isn't it?

I'll leave to you the hole code of my Main Menu (some parts are in Spanish, sorry about that):


 #pragma strict
 
 private var mostrarMenuPrincipal : boolean = true;
 private var mostrarOpciones : boolean = false;
 private var mostrarBotonOpciones : boolean = true;
 private var mostrarBotonVolverMenuPrincipal : boolean = false;
 private var mostrarMenuUnJugador : boolean = false;
 private var mostrarBotonCancelar : boolean = false;
 private var mostrarMenuMultijugador : boolean = false;
 private var mostrarMenuModo1Multijugador : boolean = false;
 private var mostrarDialogoServer : boolean = false;
 private var mostrarDialogoHuesped : boolean = false;
 
 private var InputCustomIP : String;
 
 private var toggleDificultad1 : boolean = false;
 private var toggleDificultad2 : boolean = false;
 private var toggleDificultad3 : boolean = false;
 
 var supportedNetworkLevels : String[] = [ "mylevel" ];
 var disconnectedLevel : String = "loader";
 private var lastLevelPrefix = 0;
 
 //private var estadoActualPantalla : boolean;
 
 enum NetworkConnectionError
 {
     TooManyConnectedPlayers,
 }
 
 
 function Start()
 {
     mostrarMenuPrincipal = true;
     Time.timeScale = 1;
     InputCustomIP = "192.168.1.100";
 }
 
 function Awake ()
 {
     // Network level loading is done in a separate channel.
     networkView.group = 1;
 }
 
 function Update()
 {
 
 }
 
 function OnGUI () 
 {    
 //MENU PRINCIPAL
     if(mostrarMenuPrincipal)
     {
         // Make a background box
         GUI.Box (Rect ((Screen.width * 0.5)-75,(Screen.height * 0.5)-75,170,134), "Menu Principal");
 
         // Make the first button. If it is pressed, Application.Loadlevel (1) will be executed
         if (GUI.Button (Rect ((Screen.width * 0.5)-65,(Screen.height * 0.5)-50,150,23), "Un Jugador")) 
         {
             mostrarMenuPrincipal = false;
             mostrarMenuUnJugador = true;
             mostrarBotonCancelar = true;
             mostrarBotonOpciones = false;
         }
         
         if (GUI.Button (Rect ((Screen.width * 0.5)-65,(Screen.height * 0.5)-25,150,23), "MultiJugador")) 
         {
             mostrarMenuPrincipal = false;
             mostrarMenuUnJugador = false;
             mostrarBotonCancelar = true;
             mostrarBotonOpciones = false;
             mostrarMenuModo1Multijugador = true;
             mostrarBotonVolverMenuPrincipal = true;
             Application.runInBackground = true;
         }
     
         if (GUI.Button (Rect ((Screen.width * 0.5)-65,(Screen.height * 0.5)+25,150,23), "Salir")) 
         {
             Application.Quit();
         }
     }
     
 //MENU PARTIDA
     if(mostrarMenuUnJugador)
     {
         //GUI.Box (Rect (50,50,(Screen.width -100),(Screen.height -150)), "Ajustes Partida");
         
         GUILayout.BeginArea(Rect ((Screen.width * 0.5)-225,(Screen.height * 0.5)-75,450,130));
 
             GUI.Box (Rect (0,0,450,125), "Ajustes Partida");
             
             GUILayout.BeginArea(Rect (5,20,440,200));
             
             //GUILayout.Box("Nota: Por ahora..., estos controles de dificultad son solo de relleno.");
             
             /*GUILayout.BeginHorizontal();
                 GUILayout.Label("Nivel de Dificultad");
                     if(GUILayout.Button("Facil"))
                     {
 
                     }
                     if(GUILayout.Button("Normal"))
                     {
 
                     }
                     if(GUILayout.Button("Hardcore"))
                     {
                         
                     }
             GUILayout.EndHorizontal();*/
             
             if(GUILayout.Button("Iniciar Nueva Partida"))
             {
                 Screen.showCursor = false;
                 Application.LoadLevel(3);
             }
             //GUILayout.Button("Cargar partida guardada(No funciona de momento)");
             
             GUILayout.EndArea();
 
         GUILayout.EndArea();
         
         if(GUI.Button(Rect((Screen.width * 0.5)-75,(Screen.height * 0.5)+(Screen.height * 0.27),160,20), "Cancelar"))
         {
             mostrarMenuPrincipal = true;
             mostrarMenuUnJugador = false;
             mostrarBotonOpciones = true;
         }
     }
     
 //MENU MULTIJUGADOR - PARTE 1
     if(mostrarMenuModo1Multijugador)
     {
         GUI.Box(Rect ((Screen.width * 0.5)-160,(Screen.height * 0.5)-37,150,75),"Tipo de conexión");
         
         GUILayout.BeginArea(Rect ((Screen.width * 0.5)-155,(Screen.height * 0.5)-14,140,50));
         
             GUILayout.BeginVertical();
             if(GUILayout.Button("Anfitrión"))
             {
                 mostrarDialogoServer = true;
                 mostrarDialogoHuesped = false;
             }
             if(GUILayout.Button("Huésped"))
             {
                 mostrarDialogoHuesped = true;
                 mostrarDialogoServer = false;
             }
             GUILayout.EndVertical();
         
         
         GUILayout.EndArea();
     }
 
 //DIALOGO DEL MODO ANFITRION
     if(mostrarDialogoServer)
     {
         GUI.Box(Rect ((Screen.width * 0.5)+10,(Screen.height * 0.5)-50,180,100),"Ajustes del Server");
         
         GUILayout.BeginArea(Rect ((Screen.width * 0.5)+15,(Screen.height * 0.5)-29,170,90));
         
             GUILayout.BeginVertical();
             
                 var JugadoresConectados : int = Network.connections.Length;
                 var BotonIniciarServer : boolean = true;
                 var BotonDetenerServer : boolean = false;
                 
                 /*if(BotonIniciarServer)
                 {*/
                 
                     if(GUILayout.Button("Iniciar Server"))
                     {
                         ArrancarServerInterno();
                         /*BotonIniciarServer = false;
                         BotonDetenerServer = true;*/
                     }
                 /* } */
                 /*if(BotonDetenerServer)
                 {
                     if(GUILayout.Button("Parar Server"))
                     {
                         Network.Disconnect(200);
                         MasterServer.UnregisterHost();
                         BotonIniciarServer = true;
                         BotonDetenerServer = false;
                         Debug.Log("SERVER CERRADO");
                     }
                 }*/
                 
                 GUILayout.Box("Jugadores conectados: " +JugadoresConectados);
             
                 for (var level in supportedNetworkLevels)
                 {
                 
                     if(GUILayout.Button("Empezar Partida"))
                     {
                         Screen.showCursor = false;
                         //Application.LoadLevel(2);
                         networkView.RPC( "LoadLevel", RPCMode.AllBuffered, level, lastLevelPrefix + 1);
                     }
                 }
             
             GUILayout.EndVertical();
             
         GUILayout.EndArea();
     }
 
     
 //DIALOGO DEL MODO HUESPED
     if(mostrarDialogoHuesped)
     {
         GUI.Box(Rect ((Screen.width * 0.5)+10,(Screen.height * 0.5)-50,180,100),"Ingresa la IP del Server");
         
         GUILayout.BeginArea(Rect ((Screen.width * 0.5)+15,(Screen.height * 0.5)-29,170,90));
         
             GUILayout.BeginVertical();
 
                     //GUILayout.Label("Ingresa la IP del Server:");
                     
                     GUILayout.TextField(InputCustomIP);
                     
                     GUILayout.Box("Jugadores conectados: " +JugadoresConectados);
                     
                     if(GUILayout.Button("Conectarse"))
                     {
                         Network.Connect(InputCustomIP,25000);
                         Screen.showCursor = false;
 
                     }
 
                 /*if(GUILayout.Button("Unirse a la partida"))
                 {
                     Screen.showCursor = false;
                     Application.LoadLevel(2);
                 }*/
             
             GUILayout.EndVertical();
             
         GUILayout.EndArea();
     }
 
 
 
 //OPCIONES DE JUEGO
     if(mostrarOpciones)
     {
             //Area de fondo
             //GUI.Box (Rect (5,5,(Screen.width -10),(Screen.height -10)), "Opciones");
             GUI.Box (Rect ((Screen.width * 0.5)-280,(Screen.height * 0.5)-110,560,220), "Opciones");
             
             //AREA PRINCIPAL DE OPCIONES
             GUILayout.BeginArea(Rect ((Screen.width * 0.5)-275,(Screen.height * 0.5)-110,550,250));
             
             //Comienzo de la seccion izquierda
             GUILayout.BeginHorizontal();
             GUILayout.BeginArea(Rect (0,30,300,200));
                 
                 //CAMBIAR CALIDAD
                 GUILayout.BeginArea(Rect (0,0,295,40));
                 GUILayout.BeginHorizontal();
                 if (GUILayout.Button("-")) 
                 {
                     QualitySettings.DecreaseLevel();
                 }
                 GUILayout.Box("Nivel de Calidad: "+ (QualitySettings.names[QualitySettings.GetQualityLevel()]));
                 if (GUILayout.Button("+")) 
                 {
                     QualitySettings.IncreaseLevel();
                 }
                 GUILayout.EndHorizontal();
                 GUILayout.EndArea();
 
     
                 //CAMBIAR RESOLUCION    
                 GUILayout.BeginArea(Rect (0,50,295,175));
                 GUILayout.Label("Resolución");
             
                 GUILayout.BeginHorizontal();
                 if(GUILayout.Button("640x480"))
                 {
                     Screen.SetResolution(640,480,true);
                 }
                 if(GUILayout.Button("800x600"))
                 {
                     Screen.SetResolution(800,600,true);
                 }
                 if(GUILayout.Button("1024x768"))
                 {
                     Screen.SetResolution(1024,768,true);
                 }
                 GUILayout.EndHorizontal();
             
                 GUILayout.BeginHorizontal();
                 if(GUILayout.Button("1280x720"))
                 {
                     Screen.SetResolution(1280,720,true);
                 }
                 if(GUILayout.Button("1400x900"))
                 {
                     Screen.SetResolution(1400,700,true);
                 }
                 if(GUILayout.Button("1600x900"))
                 {
                     Screen.SetResolution(1600,900,true);
                 }        
                 if(GUILayout.Button("1920x1080"))
                 {
                     Screen.SetResolution(1920,1080,true);
                 }
                 GUILayout.EndHorizontal();
                 GUILayout.EndArea();
                 
                 GUILayout.BeginArea(Rect (0,130,295,175));
                 GUILayout.BeginHorizontal();
                 if(GUILayout.Button("Cambiar a modo Ventana/Pantalla Completa"))
                 {
                     Screen.fullScreen = !Screen.fullScreen;
                 }
                 GUILayout.EndHorizontal();
                 GUILayout.EndArea();
             
                 //CONTROL VOLUMEN
                 GUILayout.BeginArea(Rect (0,30,295,40));
                     GUILayout.BeginHorizontal();
                     GUILayout.Label("Nivel de Volumen");
                         GUILayout.BeginArea(Rect (110,5,180,35));
                             AudioListener.volume = GUILayout.HorizontalSlider (AudioListener.volume, 0.0, 1.0);
                         GUILayout.EndArea();
                     GUILayout.EndHorizontal();
                 GUILayout.EndArea();
             
                  //ACTIVAR TORMENTA NIEVE
                 /*GUILayout.BeginArea(Rect (0,125,295,40));
                     GUILayout.BeginHorizontal();
                         GUILayout.Label("Tormenta de nieve densa: ");
                             if (GUILayout.Button("Activar"))
                             {
                                 NevDensa.SetActive(true);
                             }
                             if (GUILayout.Button("Desactivar"))
                             {
                                 NevDensa.SetActive(false);
                             }
                     GUILayout.EndHorizontal();
                 GUILayout.EndArea();
                 
                 //ACTIVAR COPOS DE NIEVE
                 GUILayout.BeginArea(Rect (0,150,295,40));
                     GUILayout.BeginHorizontal();
                         GUILayout.Label("Copos de Nieve: ");
                         if (GUILayout.Button("Activar"))
                         {
                             CoposNieve.SetActive(true);
                         }
                         if (GUILayout.Button("Desactivar"))
                         {
                             CoposNieve.SetActive(false);
                         }
                     GUILayout.EndHorizontal();
                 GUILayout.EndArea();*/
             
             GUILayout.EndArea();
             GUILayout.EndHorizontal();//Fin de la seccion izquierda
                     
             
             //Comienzo de la seccion derecha
             GUILayout.BeginHorizontal();
             GUILayout.BeginArea(Rect (305,50,300,200));        
                 
                 //MOTION BLUR
                 GUILayout.BeginArea(Rect (0,0,245,25));
                     GUILayout.BeginHorizontal();
                         GUILayout.Label("Desenfoque movimiento: ");
                         if (GUILayout.Button("Act."))
                         {
                             Camera.main.GetComponent(CameraMotionBlur).enabled = true;
                         }
                         if (GUILayout.Button("Desact."))
                         {
                             Camera.main.GetComponent(CameraMotionBlur).enabled = false;
                         }
                     GUILayout.EndHorizontal();
                 GUILayout.EndArea();
                     
                     
                 //ANTIALIAS
                 GUILayout.BeginArea(Rect (0,30,245,25));
                     GUILayout.BeginHorizontal();
                         GUILayout.Label("Antialias: ");
                         if (GUILayout.Button("Activar"))
                         {
                             Camera.main.GetComponent(AntialiasingAsPostEffect).enabled = true;
                         }
                         if (GUILayout.Button("Desactivar"))
                         {
                             Camera.main.GetComponent(AntialiasingAsPostEffect).enabled = false;
                         }
                     GUILayout.EndHorizontal();
                 GUILayout.EndArea();
                     
                 //SSAO
                 GUILayout.BeginArea(Rect (0,60,245,25));
                     GUILayout.BeginHorizontal();
                         GUILayout.Label("SSAO: ");
                         if (GUILayout.Button("Activar"))
                         {
                             Camera.main.GetComponent(SSAOEffect).enabled = true;
                         }
                         if (GUILayout.Button("Desactivar"))
                         {
                             Camera.main.GetComponent(SSAOEffect).enabled = false;
                         }
                     GUILayout.EndHorizontal();
                 GUILayout.EndArea();
                 
                 //VSync
                 GUILayout.BeginArea(Rect (0,90,245,25));
                     GUILayout.BeginHorizontal();
                         GUILayout.Label("Nivel VSync: ");
                         if (GUILayout.Button("0 (Desact.)"))
                         {
                             QualitySettings.vSyncCount = 0;
                         }
                         if (GUILayout.Button("1"))
                         {
                             QualitySettings.vSyncCount = 1;
                         }
                         if (GUILayout.Button("2"))
                         {
                             QualitySettings.vSyncCount = 2;
                         }
                     GUILayout.EndHorizontal();
                 GUILayout.EndArea();
                 
             GUILayout.EndArea();
             GUILayout.EndHorizontal();//Fin de la seccion derecha
             
             GUILayout.EndArea();
     }
         
 //BOTON "Volver al Menu Principal"
     if(mostrarBotonVolverMenuPrincipal)
     {    
         if(GUI.Button(Rect((Screen.width * 0.5)-75,(Screen.height * 0.5)+(Screen.height * 0.27),160,20), "Volver al Menu Principal"))
         {
             mostrarMenuPrincipal = true;
             mostrarOpciones = false;
             mostrarBotonVolverMenuPrincipal = false;
             mostrarBotonOpciones = true;
             mostrarMenuModo1Multijugador = false;
             mostrarDialogoServer = false;
             mostrarDialogoHuesped = false;
             Application.runInBackground = false;
         }
     }
     
 //BOTON "Opciones"
     if(mostrarBotonOpciones)
     {
         if(GUI.Button(Rect((Screen.width * 0.5)-65,(Screen.height * 0.5),150,23), "Opciones"))
         {
             mostrarMenuPrincipal = false;
             mostrarOpciones = true;
             mostrarBotonOpciones = false;
             mostrarBotonVolverMenuPrincipal = true;
         }
     }
 }
 
 function ArrancarServerInterno()
 {
     var useNat = !Network.HavePublicAddress();
     
     Network.InitializeServer(4,25000,useNat);
     
     //MasterServer.RegisterHost("Sombras del Yeut", "Modo de Prueba", "Actualmente este es solo un test");
     
     yield WaitForSeconds(1);
 }
 
 function OnServerInitialized()
 {
     Debug.Log("SERVER INICIADO");
 }
 
 /*function OnMasterServerEvent(mse:MasterServerEvent)
 {
     if( mse == MasterServerEvent.RegistrationSucceeded)
     {
         Debug.Log("Server Registrado Correctamente");
     }
 }
 
 function OnConnectedToServer()
 {
     
 }*/



Hope it's simple to fix, thanks in advance!

Comment
Add comment
10 |3000 characters needed characters left characters exceeded
â–¼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

1 Reply

· Add your reply
  • Sort: 
avatar image
0
Best Answer

Answer by kubci98 · Jun 22, 2013 at 06:18 PM

There is only one TextField in script (line 221). It shouldn't be even drawn, because there is no position or scale. See TextField documentation and try to edit it.

Comment
Add comment · Show 4 · Share
10 |3000 characters needed characters left characters exceeded
â–¼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image alpha-ro · Jun 22, 2013 at 06:34 PM 0
Share

You were right, now i understood and got the IP input field working, thanks a lot!

avatar image kubci98 · Jun 22, 2013 at 07:17 PM 0
Share

Glad to help you

avatar image kubci98 · Jun 22, 2013 at 07:21 PM 0
Share

btw it looks you are new to unity. It is good to mark every answered question as closed.

avatar image raycosantana · Feb 05, 2014 at 12:17 AM 0
Share

This answer is wrong. GUIlayout don't need position or scale (it positions and scales it self). You just wrote it wrong, the correct way is:

StringVar = GUILayout.TextField (StringVar,#);

"#" representing the max number (an int) of characters the user is allowed to type inside the text field and "StringVar" the string variable you want to edit.

In the case of the line 221 it would be:

 InputCustomIP = GUILayout.TextField(InputCustomIP,12);


Check GUIlayout.TextField for more information: GUILayout.TextField

"GUI.TextField" and "GUILayout.TextField" are two different things

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

17 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Unity networking tutorial? 6 Answers

script to save and load a game 3 Answers

Main Menu Button Help! 1 Answer

Main Menu scrpit not working 1 Answer

creating a menu 1 Answer


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges