Не работает скрипт при подключении Input Field к Button

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Не работает скрипт при подключении Input Field к Button

Сообщение Max_Djako8841 13 июн 2018, 15:18

помогите пожалуйста разобраться с кодом. пишу приложение под андроид, хочу сделать небольшую защиту от перебора паролей при переходе к следующей сцене, чтобы значения InputField при нажатии на button проверялись с теми что я ввёл в коде и в зависимости правильно или нет, то переходило бы ко следующей сцене, или бы давало возможность вести код ещё раз но только уже другой. И ещё чтобы текст менялся, чтобы пользователю было понятно правильно ввёл он или нет. На шарпе для консоли реализовать это получилось с легкостью, а вот в самом юнити проблемы. :ympray:

Синтаксис:
Используется csharp
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class ButtonInputConnect : MonoBehaviour
{

    public Sprite RectangleBlue, RectangleGreen;
    public InputField input;
    public Text fText;
    private int num;

    void Awake()
    {
        input = GameObject.Find("InputField").GetComponent<InputField>();
    }
    public void GetInput(string guess)
    {
       
        input.text = "";
    }

    void OnMouseDown()
    {

        GetComponent<SpriteRenderer>().sprite = RectangleGreen;
    }

    private void OnMouseUp()
    {
        GetComponent<SpriteRenderer>().sprite = RectangleBlue;
    }
   
    void OnMouseUpAsButton()
    {
        switch (gameObject.name)
        {
           num = int.Parse(input.text);
            case "rectbutton":
                {
                    if (num == 12345)
                    {
                        fText.text = "password1 enter correct";
                        Application.LoadLevel("controll");
                    }
                    else if (num != 12345)
                    {
                        fText.text = "password1 doesn't enter correct";
                        if (num == 54321)
                        {
                            fText.text = "password2 enter correct";
                            Application.LoadLevel("controll");
                        }
                        else if (num != 54321)
                        {
                            fText.text = "password2 doesn't enter correct";
                        }
                    }
                }
                break;
        }
    }
}

   


 


https://drive.google.com/open?id=1YUTmULUsaraSHevewhuIETMwDLWrG6Az
Последний раз редактировалось Max_Djako8841 13 июн 2018, 16:48, всего редактировалось 3 раз(а).
Max_Djako8841
UNец
 
Сообщения: 11
Зарегистрирован: 13 июн 2018, 14:45

Re: Не работает скрипт при подключении Input Field к Button

Сообщение 1max1 13 июн 2018, 15:24

А как ты num получаешь, что-то я не увидел?
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: Не работает скрипт при подключении Input Field к Button

Сообщение Max_Djako8841 13 июн 2018, 15:33

1max1 писал(а):А как ты num получаешь, что-то я не увидел?

num = int.Parse(input.text);
Max_Djako8841
UNец
 
Сообщения: 11
Зарегистрирован: 13 июн 2018, 14:45

Re: Не работает скрипт при подключении Input Field к Button

Сообщение Max_Djako8841 13 июн 2018, 15:48

1max1 писал(а):А как ты num получаешь, что-то я не увидел?

когда правильные варианты ввожу то оно сразу перескакивает, не учитываю какой пароль я ввел вначале, первый или второй. а когда не правильно то оно выводит что "password2 doesn't enter correct", хотя как бы должно сначала про первый написать.
Max_Djako8841
UNец
 
Сообщения: 11
Зарегистрирован: 13 июн 2018, 14:45

Re: Не работает скрипт при подключении Input Field к Button

Сообщение 1max1 13 июн 2018, 16:06

Комент глянь в коде:
Синтаксис:
Используется csharp
                  if (num == 54321)
                        {
                            fText.text = "password2 enter correct";
                            Application.LoadLevel("controll");
                        }
                        else if (num != 12345) // может тут 54321 надо?
                        {
                            fText.text = "password2 doesn't enter correct";
                        }
 
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: Не работает скрипт при подключении Input Field к Button

Сообщение Max_Djako8841 13 июн 2018, 16:47

1max1 писал(а):Комент глянь в коде:
Синтаксис:
Используется csharp
                  if (num == 54321)
                        {
                            fText.text = "password2 enter correct";
                            Application.LoadLevel("controll");
                        }
                        else if (num != 12345) // может тут 54321 надо?
                        {
                            fText.text = "password2 doesn't enter correct";
                        }
 

извиняюсь, в ручную просто переписывал и ошибся, спасибо что заметили. но к сожалению это как-то не повлияло на то что там всё равно пишется "password2 doesn't enter correct" :(
Max_Djako8841
UNец
 
Сообщения: 11
Зарегистрирован: 13 июн 2018, 14:45

Re: Не работает скрипт при подключении Input Field к Button

Сообщение Tolking 13 июн 2018, 16:50

а в любом случае пишется пароль2
Ковчег построил любитель, профессионалы построили Титаник.
Аватара пользователя
Tolking
Адепт
 
Сообщения: 2715
Зарегистрирован: 08 июн 2009, 18:22
Откуда: Тула

Re: Не работает скрипт при подключении Input Field к Button

Сообщение Max_Djako8841 13 июн 2018, 16:56

Tolking писал(а):а в любом случае пишется пароль2

нет, только когда варианты не правильные.
Max_Djako8841
UNец
 
Сообщения: 11
Зарегистрирован: 13 июн 2018, 14:45

Re: Не работает скрипт при подключении Input Field к Button

Сообщение 1max1 13 июн 2018, 18:20

всё равно пишется "password2 doesn't enter correct"
Ну так правильно, а ты что хотел?
Твой код можно упростить:
Синтаксис:
Используется csharp
        if (num == 12345)
        {
            fText.text = "password1 enter correct";
            Application.LoadLevel("controll");
        }
        else if (num == 54321)
        {
            fText.text = "password2 enter correct";
            Application.LoadLevel("controll");
        }
        else
            fText.text = "password doesn't enter correct";
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: Не работает скрипт при подключении Input Field к Button

Сообщение Max_Djako8841 13 июн 2018, 19:10

1max1 писал(а):всё равно пишется "password2 doesn't enter correct"
Ну так правильно, а ты что хотел?
Твой код можно упростить:
Синтаксис:
Используется csharp
        if (num == 12345)
        {
            fText.text = "password1 enter correct";
            Application.LoadLevel("controll");
        }
        else if (num == 54321)
        {
            fText.text = "password2 enter correct";
            Application.LoadLevel("controll");
        }
        else
            fText.text = "password doesn't enter correct";

Благодарю за помощь, тоже думал написать так как вы написали. Но изначально хотел чтобы если первый был не правильный то выводилась бы надпись что пароль не верен, и первый правильный пароль становился не правильным, а работал бы второй. то есть верный вариант всегда один.
Max_Djako8841
UNец
 
Сообщения: 11
Зарегистрирован: 13 июн 2018, 14:45

Re: Не работает скрипт при подключении Input Field к Button

Сообщение 1max1 13 июн 2018, 20:01

Думаю пользователю насрать какой по счету пасс он не угадал)
Синтаксис:
Используется csharp
private int pass = 12345;
private int countCorrect = 1;
private int countIncorrect = 1;

...

        if (num == pass)
        {
            fText.text = string.Format("password{0} enter correct", countCorrect++);
            Application.LoadLevel("controll");
        }
        else
        {
            fText.text = string.Format("password{0} doesn't enter correct", countIncorrect++);
            pass = Random.Range(1000, 9999);
            Debug.Log("now pass =" + pass.ToString());
        }
 
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: Не работает скрипт при подключении Input Field к Button

Сообщение Max_Djako8841 13 июн 2018, 22:50

1max1 писал(а):Думаю пользователю насрать какой по счету пасс он не угадал)
Синтаксис:
Используется csharp
private int pass = 12345;
private int countCorrect = 1;
private int countIncorrect = 1;

...

        if (num == pass)
        {
            fText.text = string.Format("password{0} enter correct", countCorrect++);
            Application.LoadLevel("controll");
        }
        else
        {
            fText.text = string.Format("password{0} doesn't enter correct", countIncorrect++);
            pass = Random.Range(1000, 9999);
            Debug.Log("now pass =" + pass.ToString());
        }
 

возможно. но я же для себя это делаю, так сказать для души) хотел написать как бы небольшую защиту от бруфорса)очень благодарен вам за помощь и выделенное время ^:)^ .
Последний раз редактировалось Max_Djako8841 13 июн 2018, 22:58, всего редактировалось 1 раз.
Max_Djako8841
UNец
 
Сообщения: 11
Зарегистрирован: 13 июн 2018, 14:45

Re: Не работает скрипт при подключении Input Field к Button

Сообщение 1max1 13 июн 2018, 22:55

От брутфорса лучше всего подойдет капча и кол-во неправильных попыток, после которых блокировка ввода на время.
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: Не работает скрипт при подключении Input Field к Button

Сообщение Max_Djako8841 13 июн 2018, 23:01

1max1 писал(а):От брутфорса лучше всего подойдет капча и кол-во неправильных попыток, после которых блокировка ввода на время.

думал про капчи но не хотел с ними возиться так как для меня это тот же меняющийся пароль только с подсказкой в картинке. А на счёт количества попыток то мне тоже эта идея понравилась, но сначала хотел с этим разобраться а потом уже дальше дорабатывать.
Max_Djako8841
UNец
 
Сообщения: 11
Зарегистрирован: 13 июн 2018, 14:45


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 22