x


How to make a variable int having data of a textfield?

In my game I have a textfield that it has a number but what I want to do are several things. First I want to make that what you write in the textfield is the same as a variable that handles only numbers (int), also another thing is that if it is possible that in the textfield only can write numbers, and finally and very important, if I can do at the moment of do a clic in the textfield the game stop what he was doing, so if for example the game use for something the number 1 and you write in the textfield 1 nothing happens in the game.

I really need your answers so please if you know please answer. Thanks for future. :P

more ▼

asked Oct 31 '10 at 04:00 AM

Uriel_96 gravatar image

Uriel_96
930 61 70 81

(comments are locked)
10|3000 characters needed characters left

1 answer: sort voted first

To get the value of the textfield try (c#)

int number=int.Parse(textfield.text);

Restricting a textfield to numbers is difficult. I would try this (but it certainly isn't very good code)

try
{
    int number=int.Parse(textfield.text);    
}
catch(Exception e) 
{
    textfield.text="0"
}

This code checks if it can parse the text to a number. If the convertion fails, the textfield didn't contain a number and is set to 0. Please do not comment about this, I know this is very bad style. I also know the sentence "Don't use exceptions for flowcontrol"

To disable parts of your game I would add public variables to the script that checks the textfield. This should work (c#)

using UnityEngine;
using System.Collections;
public class textdisable : MonoBehaviour
{
    public GameObject object1;
    public GameObject object2;
    public GUIText textfield;
    int number;
    // Use this for initialization
    void Start ()
    {
    }
    // Update is called once per frame
    void Update ()
    {
         if(Input.GetButtonDown("Enter")){
        try
        {
            number=int.Parse(textfield.text);   
        }
        catch(Exception e)
        {
            textfield.text="0";
        }
        if(number==1)object1.active=false;
        if(number==11)object1.active=true;
        if(number==2)object2.active=false;
        if(number==22)object2.active=true;
        }
    }
}

In the inspector you can assign objects to the variables object1 and object2 of your script. If the textfield contains specific numbers the GameObjects object1 or object2 are enabled/disabled. Lets say object1 contains the script that spawns the enemies in your scene. When the user types 1 in the textfield and presses "Enter" the object is deactivated and no more enemies are spawned.

more ▼

answered Oct 31 '10 at 10:26 AM

lhk gravatar image

lhk
520 14 15 24

but you know how to do this in java script?

Oct 31 '10 at 02:14 PM Uriel_96

its there a way to deactivate the keys of the game when you are writing on the textfield, for example if the game use the key 1 to do something and the user is writing in a textfield and write the number 1 I dont want the game to react to that key number 1 at that moment

Oct 31 '10 at 02:45 PM Uriel_96

int.TryParse is the way to properly parse it without exception. See http://answers.unity3d.com/questions/40103/text-field-inputting-numbers-only.html

Mar 22 '12 at 09:42 AM stfx
(comments are locked)
10|3000 characters needed characters left
Your answer
toggle preview:

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

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Topics:

x819
x796
x225
x150
x76

asked: Oct 31 '10 at 04:00 AM

Seen: 2164 times

Last Updated: Mar 22 '12 at 09:42 AM