настройка InputField в качестве поля IP-адреса в Unity - PullRequest
0 голосов
/ 15 февраля 2019

Hi2,

Кто-нибудь знает, как настроить поле ввода в Unity в качестве поля IP-адреса?

Я использовал такую ​​структуру, используя 3 поля ввода в качестве обходного пути.,enter image description here


Однако я хотел бы получить что-то вроде этого:
Использование только 1 InputField, и "точка" автоматически помещается, когда пользователь вводитайпи адрес.
enter image description here

Ответы [ 2 ]

0 голосов
/ 15 февраля 2019

Это, вероятно, лучше всего обработать с помощью аннотации данных RegEx для вашей модели.

[RegularExpression(@ "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]| 
[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$")]  
public string IPAddress  
{  
    get;  
    set;  
}

Затем вам нужно добавить помощники Html.EditorFor и Html.ValidationMessageFor и Html.ValidationSummary.

MVC свяжет для вас подходящий сценарий проверки на стороне клиента.Конечно, вы захотите проверить и серверную часть в вашем контроллере.

if (ModelState.IsValidField("IPAddress"))
{
  -- Do something...  Good IP address
}  

Вот отличная статья, которая объясняет все это.

https://www.c -sharpcorner.com/ статьи / данные-аннотаций-и-проверка-в-MVC /

0 голосов
/ 15 февраля 2019

Если вы просто хотите проанализировать IP, просто подтвердите ввод, как этот (не забудьте добавить этот скрипт в поле ввода

    string ip = gameObject.text;
    string[] ipStringArr = ip.Split('.');
    int[] ipIntArr = new int[ipStringArr.Length];
    if (ipIntArr.Length != 4)
    {
        //error
    }
    else
    {
        for (int i = 0; i < ipStringArr.Length; i++)
        {
            ipIntArr[i] = Int32.Parse(ipStringArr[i]);
            if (ipIntArr[i] < 0 || ipIntArr[i] > 255)
            {
                //error
            }
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...