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 Madswint · Mar 17, 2014 at 03:12 PM · variabletextfield

How to output variable in textfield?

What I'm trying to do is a textfield, for max players for multiplayer game. How can I make it so he can only write numbers, and so the output in textfield goes to a variable? I'm stuck on this, anyone with a better idea on how to do this is very appreciated. Thanks in advance.

Comment
Add comment · Show 3
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 vexe · Mar 17, 2014 at 03:29 PM 1
Share

Why do you need a text field, have him enter numbers only, and then parse his input? - why not just use a numeric field?

If you insist on a text field, use a regular expression. Something like @"[0-9]" - look at the Regex drawer they have as an example property drawer http://blogs.unity3d.com/2012/09/07/property-drawers-in-unity-4/

avatar image vexe · Mar 17, 2014 at 03:39 PM 1
Share

Crap I thought there was something like a GUI.FloatField - there isn't. There is EditorGUI.FloatField but I think you want it at runtime... like this.

avatar image vexe · Mar 17, 2014 at 09:08 PM 1
Share

@Excalibera: FEEDBAC$$anonymous$$ is appreciated.

1 Reply

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

Answer by vexe · Mar 17, 2014 at 03:59 PM

Alright tried this, it works - I wrote it as an Editor, but the idea is applicable in GUI code too... The key elements are: 1- the regular expression. 2- the int.TryParse function to turn the string into an int.

 using System.Text.RegularExpressions;
 using UnityEditor;
 using UnityEngine;

 [CustomEditor(typeof(Test))]
 public class TestEditor : Editor
 {
     string strValue = "";
     int intValue;
     Regex numbers = new Regex(@"^\s*[0-9]*$"); // this means: anything that 'starts' with any number of spaces followed by any number of digits between 0-9. the $ signifies the end, the ^ is the start. you could use \d instead of [0-9]

     public override void OnInspectorGUI()
     {
         base.OnInspectorGUI();
         GUILayout.BeginHorizontal();
         {
             EditorGUILayout.PrefixLabel("StringValue");
             string newValue = GUILayout.TextField(strValue);
             if (numbers.IsMatch(newValue)) {
                 strValue = newValue;
                 int.TryParse(strValue, out intValue);
             }
         }
         GUILayout.EndHorizontal();
 
         GUILayout.Label(intValue.ToString());
     }
 }
Comment
Add comment · Show 1 · 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 Madswint · Mar 25, 2014 at 09:56 PM 0
Share

OH $$anonymous$$Y GOD I FORGOT I HAD THE QUESTION UP!! I'm so sorry I feel bad >.<. Thank you so much! I havent tried it yet since I only use javascript, but I'll try and use your method. Thank you again and I'm so sorry :/!

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

21 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 avatar image avatar image avatar image avatar image

Related Questions

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

Display Playerpref string in GUI.TextField. 2 Answers

Display additional text before the variable that the user is editing in a GUI Text Field 1 Answer

Communication between objects and other scripts, variables and properties 1 Answer

Rewind/Play animations on demand. 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