Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 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 /
  • Help Room /
avatar image
0
Question by slaven944 · May 06, 2016 at 03:41 PM · error buildcs0117

I had error when compile Android apk (error CS0117)

Hello! I have some errors Please help me I use Unity 5.3.4

Assets/ExternLib/NGUI/Scripts/UI/UIInput.cs(195,77): error CS0117: UnityEngine.RuntimePlatform' does not contain a definition for BB10Player'

Assets/ExternLib/NGUI/Scripts/UI/UIInput.cs(424,69): error CS0117: UnityEngine.RuntimePlatform' does not contain a definition for BB10Player'

Here code:

if !UNITY_EDITOR && (UNITY_IPHONE || UNITY_ANDROID || UNITY_WP8 || UNITY_BLACKBERRY)

define MOBILE #endif

using UnityEngine; using System.Collections.Generic; using System.Text;

/// /// Input field makes it possible to enter custom information within the UI. ///

[AddComponentMenu("NGUI/UI/Input Field")] public class UIInput : MonoBehaviour { public enum InputType { Standard, AutoCorrect, Password, }

 public enum Validation
 {
     None,
     Integer,
     Float,
     Alphanumeric,
     Username,
     Name,
 }

 public enum KeyboardType
 {
     Default = 0,
     ASCIICapable = 1,
     NumbersAndPunctuation = 2,
     URL = 3,
     NumberPad = 4,
     PhonePad = 5,
     NamePhonePad = 6,
     EmailAddress = 7,
 }

 public delegate char OnValidate (string text, int charIndex, char addedChar);

 /// <summary>
 /// Currently active input field. Only valid during callbacks.
 /// </summary>

 static public UIInput current;

 /// <summary>
 /// Currently selected input field, if any.
 /// </summary>

 static public UIInput selection;

 /// <summary>
 /// Text label used to display the input's value.
 /// </summary>

 public UILabel label;

 /// <summary>
 /// Type of data expected by the input field.
 /// </summary>

 public InputType inputType = InputType.Standard;

 /// <summary>
 /// Keyboard type applies to mobile keyboards that get shown.
 /// </summary>

 public KeyboardType keyboardType = KeyboardType.Default;

 /// <summary>
 /// What kind of validation to use with the input field's data.
 /// </summary>

 public Validation validation = Validation.None;

 /// <summary>
 /// Maximum number of characters allowed before input no longer works.
 /// </summary>

 public int characterLimit = 0; 

 /// <summary>
 /// Field in player prefs used to automatically save the value.
 /// </summary>

 public string savedAs;

 /// <summary>
 /// Object to select when Tab key gets pressed.
 /// </summary>

 public GameObject selectOnTab;

 /// <summary>
 /// Color of the label when the input field has focus.
 /// </summary>

 public Color activeTextColor = Color.white;

 /// <summary>
 /// Color used by the caret symbol.
 /// </summary>

 public Color caretColor = new Color(1f, 1f, 1f, 0.8f);

 /// <summary>
 /// Color used by the selection rectangle.
 /// </summary>

 public Color selectionColor = new Color(1f, 223f / 255f, 141f / 255f, 0.5f);

 /// <summary>
 /// Event delegates triggered when the input field submits its data.
 /// </summary>

 public List<EventDelegate> onSubmit = new List<EventDelegate>();

 /// <summary>
 /// Event delegates triggered when the input field's text changes for any reason.
 /// </summary>

 public List<EventDelegate> onChange = new List<EventDelegate>();

 /// <summary>
 /// Custom validation callback.
 /// </summary>

 public OnValidate onValidate;

 /// <summary>
 /// Input field's value.
 /// </summary>

 [SerializeField][HideInInspector] protected string mValue;

 protected string mDefaultText = "";
 protected Color mDefaultColor = Color.white;
 protected float mPosition = 0f;
 protected bool mDoInit = true;
 protected UIWidget.Pivot mPivot = UIWidget.Pivot.TopLeft;

 static protected int mDrawStart = 0;

if MOBILE

static protected TouchScreenKeyboard mKeyboard; #else protected int mSelectionStart = 0; protected int mSelectionEnd = 0; protected UITexture mHighlight = null; protected UITexture mCaret = null; protected Texture2D mBlankTex = null; protected float mNextBlink = 0f;

 static protected string mLastIME = "";

endif

 /// <summary>
 /// Default text used by the input's label.
 /// </summary>

 public string defaultText { get { return mDefaultText; } set { mDefaultText = value; } }

 [System.Obsolete("Use UIInput.value instead")]
 public string text { get { return this.value; } set { this.value = value; } }

 /// <summary>
 /// Input field's current text value.
 /// </summary>

 public string value
 {
     get
     {

if UNITY_EDITOR

        if (!Application.isPlaying) return "";

endif

        if (mDoInit) Init();

if MOBILE

        if (isSelected && mKeyboard != null && mKeyboard.active)
         {
             string val = mKeyboard.text;

if !UNITY_3_5

            if (Application.platform == RuntimePlatform.BB10Player)
                 val = val.Replace("\\b", "\b");

endif

            return val;
         }

endif

        return mValue;
     }
     set
     {

if UNITY_EDITOR

        if (!Application.isPlaying) return;

endif

        if (mDoInit) Init();
         mDrawStart = 0;

if MOBILE

        if (isSelected && mKeyboard != null)
             mKeyboard.text = value;

         if (this.value != value)
         {
             mValue = value;
             if (isSelected && mKeyboard != null) mKeyboard.text = value;
             SaveToPlayerPrefs(mValue);
             UpdateLabel();
             ExecuteOnChange();
         }

else

        if (this.value != value)
         {
             mValue = value;

             if (isSelected)
             {
                 if (string.IsNullOrEmpty(mValue))
                 {
                     mSelectionStart = 0;
                     mSelectionEnd = 0;
                 }
                 else
                 {
                     mSelectionStart = mValue.Length;
                     mSelectionEnd = mSelectionStart;
                 }
             }
             else SaveToPlayerPrefs(mValue);

             UpdateLabel();
             ExecuteOnChange();
         }

endif

    }
 }

 [System.Obsolete("Use UIInput.isSelected instead")]
 public bool selected { get { return isSelected; } set { isSelected = value; } }

 /// <summary>
 /// Whether the input is currently selected.
 /// </summary>

 public bool isSelected
 {
     get
     {
         return selection == this;
     }
     set
     {
         if (!value) { if (isSelected) UICamera.selectedObject = null; }
         else UICamera.selectedObject = gameObject;
     }
 }

 /// <summary>
 /// Current position of the cursor.
 /// </summary>

if MOBILE

protected int cursorPosition { get { return value.Length; } } #else protected int cursorPosition { get { return isSelected ? mSelectionEnd : value.Length; } } #endif

 /// <summary>
 /// Automatically set the value by loading it from player prefs if possible.
 /// </summary>

 void Start ()
 {
     if (string.IsNullOrEmpty(mValue))
     {
         if (!string.IsNullOrEmpty(savedAs) && PlayerPrefs.HasKey(savedAs))
             value = PlayerPrefs.GetString(savedAs);
     }
     else value = mValue.Replace("\\n", "\n");
 }

 /// <summary>
 /// Labels used for input shouldn't support rich text.
 /// </summary>

 protected void Init ()
 {
     if (mDoInit && label != null)
     {
         mDoInit = false;
         mDefaultText = label.text;
         mDefaultColor = label.color;
         label.supportEncoding = false;
         mPivot = label.pivot;
         mPosition = label.cachedTransform.localPosition.x;
         UpdateLabel();
     }
 }

 /// <summary>
 /// Save the specified value to player prefs.
 /// </summary>

 protected void SaveToPlayerPrefs (string val)
 {
     if (!string.IsNullOrEmpty(savedAs))
     {
         if (string.IsNullOrEmpty(val)) PlayerPrefs.DeleteKey(savedAs);
         else PlayerPrefs.SetString(savedAs, val);
     }
 }

 /// <summary>
 /// Selection event, sent by the EventSystem.
 /// </summary>

 protected virtual void OnSelect (bool isSelected)
 {
     if (isSelected) OnSelectEvent();
     else OnDeselectEvent();
 }

 /// <summary>
 /// Notification of the input field gaining selection.
 /// </summary>

 protected void OnSelectEvent ()
 {
     selection = this;

     if (mDoInit) Init();

     if (label != null && NGUITools.GetActive(this))
     {
         label.color = activeTextColor;

if MOBILE

        if (Application.platform == RuntimePlatform.IPhonePlayer ||
             Application.platform == RuntimePlatform.Android

if UNITY_WP8

            || Application.platform == RuntimePlatform.WP8Player

endif

if UNITY_BLACKBERRY || Application.platform == RuntimePlatform.BB10Player #endif ) { mKeyboard = (inputType == InputType.Password) ? TouchScreenKeyboard.Open(mValue, TouchScreenKeyboardType.Default, false, false, true) : TouchScreenKeyboard.Open(mValue, (TouchScreenKeyboardType)((int)keyboardType), inputType == InputType.AutoCorrect, label.multiLine, false, false, defaultText); } else #endif { Input.imeCompositionMode = IMECompositionMode.On; Input.compositionCursorPos = (UICamera.current != null && UICamera.current.cachedCamera != null) ? UICamera.current.cachedCamera.WorldToScreenPoint(label.worldCorners[0]) : label.worldCorners[0]; #if !MOBILE mSelectionStart = 0; mSelectionEnd = string.IsNullOrEmpty(mValue) ? 0 : mValue.Length; #endif mDrawStart = 0; } UpdateLabel(); } }

 /// <summary>
 /// Notification of the input field losing selection.
 /// </summary>

 protected void OnDeselectEvent ()
 {
     if (mDoInit) Init();

     if (label != null && NGUITools.GetActive(this))
     {
         mValue = value;

if MOBILE

        if (mKeyboard != null)
         {
             mKeyboard.active = false;
             mKeyboard = null;
         }

endif

        if (string.IsNullOrEmpty(mValue))
         {
             label.text = mDefaultText;
             label.color = mDefaultColor;
         }
         else label.text = mValue;

         Input.imeCompositionMode = IMECompositionMode.Off;
         RestoreLabelPivot();
     }
     
     selection = null;
     UpdateLabel();
 }

 /// <summary>
 /// Update the text based on input.
 /// </summary>

if MOBILE

void Update() { if (mKeyboard != null && isSelected) { string val = mKeyboard.text; #if !UNITY_3_5 // BB10's implementation has a bug in Unity if (Application.platform == RuntimePlatform.BB10Player) val = val.Replace("\\b", "\b"); #endif if (mValue != val) { mValue = "";

             for (int i = 0; i < val.Length; ++i)
             {
                 char c = val[i];
                 if (onValidate != null) c = onValidate(mValue, mValue.Length, c);
                 else if (validation != Validation.None) c = Validate(mValue, mValue.Length, c);
                 if (c != 0) mValue += c;
             }

             if (characterLimit > 0 && mValue.Length > characterLimit)
                 mValue = mValue.Substring(0, characterLimit);
             
             UpdateLabel();
             ExecuteOnChange();

             if (mValue != val) mKeyboard.text = mValue;
         }

         if (mKeyboard.done)
         {

if !UNITY_3_5

            if (!mKeyboard.wasCanceled)

endif

                Submit();
             mKeyboard = null;
             isSelected = false;
         }
     }
 }

else

void Update () { #if UNITY_EDITOR if (!Application.isPlaying) return; #endif if (isSelected) { if (mDoInit) Init();

         if (selectOnTab != null && Input.GetKeyDown(KeyCode.Tab))
         {
             UICamera.selectedObject = selectOnTab;
             return;
         }

         // Process input ignoring non-printable characters as they are not consistent.
         // Windows has them, OSX may not. They get handled inside OnGUI() instead.
         string s = Input.inputString;
         
         if (!string.IsNullOrEmpty(s))
         {
             for (int i = 0; i < s.Length; ++i)
             {
                 char ch = s[i];
                 if (ch >= ' ') Insert(ch.ToString());
             }
         }

         // Append IME composition
         if (mLastIME != Input.compositionString)
         {
             mLastIME = Input.compositionString;
             UpdateLabel();
             ExecuteOnChange();
         }

         // Blink the caret
         if (mCaret != null && mNextBlink < RealTime.time)
         {
             mNextBlink = RealTime.time + 0.5f;
             mCaret.enabled = !mCaret.enabled;
         }
     }
 }

 /// <summary>
 /// Unfortunately Unity 4.3 and earlier doesn't offer a way to properly process events outside of OnGUI.
 /// </summary>

 void OnGUI ()
 {
     if (isSelected && Event.current.rawType == EventType.KeyDown)
         ProcessEvent(Event.current);
 }

 /// <summary>
 /// Handle the specified event.
 /// </summary>

 bool ProcessEvent (Event ev)
 {
     if (label == null) return false;

     RuntimePlatform rp = Application.platform;

     bool isMac = (
         rp == RuntimePlatform.OSXEditor ||
         rp == RuntimePlatform.OSXPlayer ||
         rp == RuntimePlatform.OSXWebPlayer);

     bool ctrl = isMac ?
         ((ev.modifiers & EventModifiers.Command) != 0) :
         ((ev.modifiers & EventModifiers.Control) != 0);

     bool shift = ((ev.modifiers & EventModifiers.Shift) != 0);

     switch (ev.keyCode)
     {
         case KeyCode.Backspace:
         {
             ev.Use();

             if (!string.IsNullOrEmpty(mValue))
             {
                 if (mSelectionStart == mSelectionEnd)
                 {
                     if (mSelectionStart < 1) return true;
                     --mSelectionEnd;
                 }
                 Insert("");
             }
             return true;
         }

         case KeyCode.Delete:
         {
             ev.Use();

             if (!string.IsNullOrEmpty(mValue))
             {
                 if (mSelectionStart == mSelectionEnd)
                 {
                     if (mSelectionStart + 1 >= mValue.Length) return true;
                     ++mSelectionEnd;
                 }
                 Insert("");
             }
             return true;
         }

         case KeyCode.LeftArrow:
         {
             ev.Use();

             if (!string.IsNullOrEmpty(mValue))
             {
                 mSelectionEnd = Mathf.Max(mSelectionEnd - 1, 0);
                 if (!shift) mSelectionStart = mSelectionEnd;
                 UpdateLabel();
             }
             return true;
         }

         case KeyCode.RightArrow:
         {
             ev.Use();

             if (!string.IsNullOrEmpty(mValue))
             {
                 mSelectionEnd = Mathf.Min(mSelectionEnd + 1, mValue.Length);
                 if (!shift) mSelectionStart = mSelectionEnd;
                 UpdateLabel();
             }
             return true;
         }

         case KeyCode.PageUp:
         {
             ev.Use();

             if (!string.IsNullOrEmpty(mValue))
             {
                 mSelectionEnd = 0;
                 if (!shift) mSelectionStart = mSelectionEnd;
                 UpdateLabel();
             }
             return true;
         }

         case KeyCode.PageDown:
         {
             ev.Use();

             if (!string.IsNullOrEmpty(mValue))
             {
                 mSelectionEnd = mValue.Length;
                 if (!shift) mSelectionStart = mSelectionEnd;
                 UpdateLabel();
             }
             return true;
         }

         case KeyCode.Home:
         {
             ev.Use();

             if (!string.IsNullOrEmpty(mValue))
             {
                 if (label.multiLine)
                 {
                     mSelectionEnd = label.GetCharacterIndex(mSelectionEnd, KeyCode.Home);
                 }
                 else mSelectionEnd = 0;

                 if (!shift) mSelectionStart = mSelectionEnd;
                 UpdateLabel();
             }
             return true;
         }

         case KeyCode.End:
         {
             ev.Use();

             if (!string.IsNullOrEmpty(mValue))
             {
                 if (label.multiLine)
                 {
                     mSelectionEnd = label.GetCharacterIndex(mSelectionEnd, KeyCode.End);
                 }
                 else mSelectionEnd = mValue.Length;

                 if (!shift) mSelectionStart = mSelectionEnd;
                 UpdateLabel();
             }
             return true;
         }

         case KeyCode.UpArrow:
         {
             ev.Use();

             if (!string.IsNullOrEmpty(mValue))
             {
                 mSelectionEnd = label.GetCharacterIndex(mSelectionEnd, KeyCode.UpArrow);
                 if (mSelectionEnd != 0) mSelectionEnd += mDrawStart;
                 if (!shift) mSelectionStart = mSelectionEnd;
                 UpdateLabel();
             }
             return true;
         }

         case KeyCode.DownArrow:
         {
             ev.Use();

             if (!string.IsNullOrEmpty(mValue))
             {
                 mSelectionEnd = label.GetCharacterIndex(mSelectionEnd, KeyCode.DownArrow);
                 if (mSelectionEnd != label.processedText.Length) mSelectionEnd += mDrawStart;
                 else mSelectionEnd = mValue.Length;
                 if (!shift) mSelectionStart = mSelectionEnd;
                 UpdateLabel();
             }
             return true;
         }

         // Copy
         case KeyCode.C:
         {
             if (ctrl)
             {
                 ev.Use();
                 NGUITools.clipboard = GetSelection();
             }
             return true;
         }

         // Paste
         case KeyCode.V:
         {
             if (ctrl)
             {
                 ev.Use();
                 Insert(NGUITools.clipboard);
             }
             return true;
         }

         // Cut
         case KeyCode.X:
         {
             if (ctrl)
             {
                 ev.Use();
                 NGUITools.clipboard = GetSelection();
                 Insert("");
             }
             return true;
         }

         // Submit
         case KeyCode.Return:
         case KeyCode.KeypadEnter:
         {
             ev.Use();
             
             if (label.multiLine && !ctrl && label.overflowMethod != UILabel.Overflow.ClampContent)
             {
                 Insert("\n");
             }
             else
             {
                 UICamera.currentScheme = UICamera.ControlScheme.Controller;
                 UICamera.currentKey = ev.keyCode;
                 Submit();
                 UICamera.currentKey = KeyCode.None;
             }
             return true;
         }
     }
     return false;
 }

 /// <summary>
 /// Insert the specified text string into the current input value, respecting selection and validation.
 /// </summary>

 protected virtual void Insert (string text)
 {
     string left = GetLeftText();
     string right = GetRightText();

     StringBuilder sb = new StringBuilder(left.Length + right.Length + text.Length);
     sb.Append(left);

     // Append the new text
     for (int i = 0, imax = text.Length; i < imax; ++i)
     {
         char c = text[i];

         // Can't go past the character limit
         if (characterLimit > 0 && mValue.Length >= characterLimit) continue;

         // If we have an input validator, validate the input first
         if (onValidate != null) c = onValidate(mValue, mValue.Length, c);
         else if (validation != Validation.None) c = Validate(mValue, mValue.Length, c);

         // Append the character if it hasn't been invalidated
         if (c != 0) sb.Append(c);
     }

     // Advance the selection
     mSelectionStart = sb.Length;
     mSelectionEnd = mSelectionStart;

     // Append the text that follows it, ensuring that it's also validated after the inserted value
     for (int i = 0, imax = right.Length; i < imax; ++i)
     {
         char c = right[i];
         if (characterLimit > 0 && mValue.Length >= characterLimit) continue;
         if (onValidate != null) c = onValidate(mValue, mValue.Length, c);
         else if (validation != Validation.None) c = Validate(mValue, mValue.Length, c);
         if (c != 0) sb.Append(c);
     }

     mValue = sb.ToString();
     UpdateLabel();
     ExecuteOnChange();
 }

 /// <summary>
 /// Get the text to the left of the selection.
 /// </summary>

 protected string GetLeftText ()
 {
     int min = Mathf.Min(mSelectionStart, mSelectionEnd);
     return (string.IsNullOrEmpty(mValue) || min < 0) ? "" : mValue.Substring(0, min);
 }

 /// <summary>
 /// Get the text to the right of the selection.
 /// </summary>

 protected string GetRightText ()
 {
     int max = Mathf.Max(mSelectionStart, mSelectionEnd);
     return (string.IsNullOrEmpty(mValue) || max >= mValue.Length) ? "" : mValue.Substring(max);
 }

 /// <summary>
 /// Get currently selected text.
 /// </summary>

 protected string GetSelection ()
 {
     if (string.IsNullOrEmpty(mValue) || mSelectionStart == mSelectionEnd)
     {
         return "";
     }
     else
     {
         int min = Mathf.Min(mSelectionStart, mSelectionEnd);
         int max = Mathf.Max(mSelectionStart, mSelectionEnd);
         return mValue.Substring(min, max - min);
     }
 }

 /// <summary>
 /// Helper function that retrieves the index of the character under the mouse.
 /// </summary>

 protected int GetCharUnderMouse ()
 {
     Vector3[] corners = label.worldCorners;
     Ray ray = UICamera.currentRay;
     Plane p = new Plane(corners[0], corners[1], corners[2]);
     float dist;
     return p.Raycast(ray, out dist) ? mDrawStart + label.GetCharacterIndex(ray.GetPoint(dist)) : 0;
 }

 /// <summary>
 /// Move the caret on press.
 /// </summary>

 protected virtual void OnPress (bool isPressed)
 {
     if (isPressed && isSelected && label != null && UICamera.currentScheme == UICamera.ControlScheme.Mouse)
     {
         mSelectionEnd = GetCharUnderMouse();
         if (!Input.GetKey(KeyCode.LeftShift) &&
             !Input.GetKey(KeyCode.RightShift)) mSelectionStart = mSelectionEnd;
         UpdateLabel();
     }
 }

 /// <summary>
 /// Drag selection.
 /// </summary>

 protected virtual void OnDrag (Vector2 delta)
 {
     if (label != null && UICamera.currentScheme == UICamera.ControlScheme.Mouse)
     {
         mSelectionEnd = GetCharUnderMouse();
         UpdateLabel();
     }
 }

 /// <summary>
 /// Ensure we've released the dynamically created resources.
 /// </summary>

 void OnDisable () { Cleanup(); }

 /// <summary>
 /// Cleanup.
 /// </summary>

 protected virtual void Cleanup ()
 {
     if (mHighlight)
     {
         NGUITools.Destroy(mHighlight.gameObject);
         mHighlight = null;
     }

     if (mCaret)
     {
         NGUITools.Destroy(mCaret.gameObject);
         mCaret = null;
     }

     if (mBlankTex)
     {
         NGUITools.Destroy(mBlankTex);
         mBlankTex = null;
     }
 }

endif // !MOBILE

 /// <summary>
 /// Submit the input field's text.
 /// </summary>

 protected void Submit ()
 {
     if (NGUITools.GetActive(this))
     {
         current = this;
         mValue = value;
         EventDelegate.Execute(onSubmit);
         SaveToPlayerPrefs(mValue);
         current = null;
     }
 }

 /// <summary>
 /// Update the visual text label.
 /// </summary>

 protected void UpdateLabel ()
 {
     if (label != null)
     {
         if (mDoInit) Init();
         bool selected = isSelected;
         string fullText = value;
         bool isEmpty = string.IsNullOrEmpty(fullText);
         label.color = (isEmpty && !selected) ? mDefaultColor : activeTextColor;
         string processed;

         if (isEmpty)
         {
             processed = selected ? "" : mDefaultText;
             RestoreLabelPivot();
         }
         else
         {
             if (inputType == InputType.Password)
             {
                 processed = "";
                 for (int i = 0, imax = fullText.Length; i < imax; ++i) processed += "*";
             }
             else processed = fullText;

             // Start with text leading up to the selection
             int selPos = selected ? Mathf.Min(processed.Length, cursorPosition) : 0;
             string left = processed.Substring(0, selPos);

             // Append the composition string and the cursor character
             if (selected) left += Input.compositionString;

             // Append the text from the selection onwards
             processed = left + processed.Substring(selPos, processed.Length - selPos);

             // Clamped content needs to be adjusted further
             if (selected && label.overflowMethod == UILabel.Overflow.ClampContent)
             {
                 // Determine what will actually fit into the given line
                 int offset = label.CalculateOffsetToFit(processed);

                 if (offset == 0)
                 {
                     mDrawStart = 0;
                     RestoreLabelPivot();
                 }
                 else if (selPos < mDrawStart)
                 {
                     mDrawStart = selPos;
                     SetPivotToLeft();
                 }
                 else if (offset < mDrawStart)
                 {
                     mDrawStart = offset;
                     SetPivotToLeft();
                 }
                 else
                 {
                     offset = label.CalculateOffsetToFit(processed.Substring(0, selPos));

                     if (offset > mDrawStart)
                     {
                         mDrawStart = offset;
                         SetPivotToRight();
                     }
                 }

                 // If necessary, trim the front
                 if (mDrawStart != 0)
                     processed = processed.Substring(mDrawStart, processed.Length - mDrawStart);
             }
             else
             {
                 mDrawStart = 0;
                 RestoreLabelPivot();
             }
         }

         label.text = processed;

if !MOBILE

        if (selected)
         {
             int start = mSelectionStart - mDrawStart;
             int end = mSelectionEnd - mDrawStart;

             // Blank texture used by selection and caret
             if (mBlankTex == null)
             {
                 mBlankTex = new Texture2D(2, 2, TextureFormat.ARGB32, false);
                 for (int y = 0; y < 2; ++y)
                     for (int x = 0; x < 2; ++x)
                         mBlankTex.SetPixel(x, y, Color.white);
                 mBlankTex.Apply();
             }

             // Create the selection highlight
             if (start != end)
             {
                 if (mHighlight == null)
                 {
                     mHighlight = NGUITools.AddWidget<UITexture>(label.cachedGameObject);
                     mHighlight.name = "Input Highlight";
                     mHighlight.mainTexture = mBlankTex;
                     mHighlight.fillGeometry = false;
                     mHighlight.pivot = label.pivot;
                     mHighlight.SetAnchor(label.cachedTransform);
                 }
                 else
                 {
                     mHighlight.pivot = label.pivot;
                     mHighlight.MarkAsChanged();
                 }
             }

             // Create the caret
             if (mCaret == null)
             {
                 mCaret = NGUITools.AddWidget<UITexture>(label.cachedGameObject);
                 mCaret.name = "Input Caret";
                 mCaret.mainTexture = mBlankTex;
                 mCaret.fillGeometry = false;
                 mCaret.pivot = label.pivot;
                 mCaret.SetAnchor(label.cachedTransform);
             }
             else
             {
                 mCaret.pivot = label.pivot;
                 mCaret.MarkAsChanged();
                 mCaret.enabled = true;
             }

             // Fill the selection
             if (start != end)
             {
                 label.PrintOverlay(start, end, mCaret.geometry, mHighlight.geometry, caretColor, selectionColor);
                 mHighlight.enabled = mHighlight.geometry.hasVertices;
             }
             else
             {
                 label.PrintOverlay(start, end, mCaret.geometry, null, caretColor, selectionColor);
                 if (mHighlight != null) mHighlight.enabled = false;
             }

             // Reset the blinking time
             mNextBlink = RealTime.time + 0.5f;
         }
         else Cleanup();

endif

    }
 }

 /// <summary>
 /// Set the label's pivot to the left.
 /// </summary>

 protected void SetPivotToLeft ()
 {
     Vector2 po = NGUIMath.GetPivotOffset(mPivot);
     po.x = 0f;
     label.pivot = NGUIMath.GetPivot(po);
 }

 /// <summary>
 /// Set the label's pivot to the right.
 /// </summary>

 protected void SetPivotToRight ()
 {
     Vector2 po = NGUIMath.GetPivotOffset(mPivot);
     po.x = 1f;
     label.pivot = NGUIMath.GetPivot(po);
 }

 /// <summary>
 /// Restore the input label's pivot point.
 /// </summary>

 protected void RestoreLabelPivot ()
 {
     if (label != null && label.pivot != mPivot)
         label.pivot = mPivot;
 }

 /// <summary>
 /// Validate the specified input.
 /// </summary>

 protected char Validate (string text, int pos, char ch)
 {
     // Validation is disabled
     if (validation == Validation.None || !enabled) return ch;

     if (validation == Validation.Integer)
     {
         // Integer number validation
         if (ch >= '0' && ch <= '9') return ch;
         if (ch == '-' && pos == 0 && !text.Contains("-")) return ch;
     }
     else if (validation == Validation.Float)
     {
         // Floating-point number
         if (ch >= '0' && ch <= '9') return ch;
         if (ch == '-' && pos == 0 && !text.Contains("-")) return ch;
         if (ch == '.' && !text.Contains(".")) return ch;
     }
     else if (validation == Validation.Alphanumeric)
     {
         // All alphanumeric characters
         if (ch >= 'A' && ch <= 'Z') return ch;
         if (ch >= 'a' && ch <= 'z') return ch;
         if (ch >= '0' && ch <= '9') return ch;
     }
     else if (validation == Validation.Username)
     {
         // Lowercase and numbers
         if (ch >= 'A' && ch <= 'Z') return (char)(ch - 'A' + 'a');
         if (ch >= 'a' && ch <= 'z') return ch;
         if (ch >= '0' && ch <= '9') return ch;
     }
     else if (validation == Validation.Name)
     {
         char lastChar = (text.Length > 0) ? text[Mathf.Clamp(pos, 0, text.Length - 1)] : ' ';
         char nextChar = (text.Length > 0) ? text[Mathf.Clamp(pos + 1, 0, text.Length - 1)] : '\n';

         if (ch >= 'a' && ch <= 'z')
         {
             // Space followed by a letter -- make sure it's capitalized
             if (lastChar == ' ') return (char)(ch - 'a' + 'A');
             return ch;
         }
         else if (ch >= 'A' && ch <= 'Z')
         {
             // Uppercase letters are only allowed after spaces (and apostrophes)
             if (lastChar != ' ' && lastChar != '\'') return (char)(ch - 'A' + 'a');
             return ch;
         }
         else if (ch == '\'')
         {
             // Don't allow more than one apostrophe
             if (lastChar != ' ' && lastChar != '\'' && nextChar != '\'' && !text.Contains("'")) return ch;
         }
         else if (ch == ' ')
         {
             // Don't allow more than one space in a row
             if (lastChar != ' ' && lastChar != '\'' && nextChar != ' ' && nextChar != '\'') return ch;
         }
     }
     return (char)0;
 }

 /// <summary>
 /// Execute the OnChange callback.
 /// </summary>

 protected void ExecuteOnChange ()
 {
     if (EventDelegate.IsValid(onChange))
     {
         current = this;
         EventDelegate.Execute(onChange);
         current = null;
     }
 }

}

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

0 Replies

· Add your reply
  • Sort: 

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

3 People are following this question.

avatar image avatar image avatar image

Related Questions

Nothing Showing Properly! 0 Answers

uni 5.6.0f3 Player data archive not found 0 Answers

My enemy is going the wrong way 1 Answer

I can not build my project in Unity Version 2018.3.12f1 1 Answer

unity3d cloud build not working. 0 Answers


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