Страница 1 из 1

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

СообщениеДобавлено: 13 июн 2018, 15:18
Max_Djako8841
помогите пожалуйста разобраться с кодом. пишу приложение под андроид, хочу сделать небольшую защиту от перебора паролей при переходе к следующей сцене, чтобы значения 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

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

СообщениеДобавлено: 13 июн 2018, 15:24
1max1
А как ты num получаешь, что-то я не увидел?

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

СообщениеДобавлено: 13 июн 2018, 15:33
Max_Djako8841
1max1 писал(а):А как ты num получаешь, что-то я не увидел?

num = int.Parse(input.text);

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

СообщениеДобавлено: 13 июн 2018, 15:48
Max_Djako8841
1max1 писал(а):А как ты num получаешь, что-то я не увидел?

когда правильные варианты ввожу то оно сразу перескакивает, не учитываю какой пароль я ввел вначале, первый или второй. а когда не правильно то оно выводит что "password2 doesn't enter correct", хотя как бы должно сначала про первый написать.

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

СообщениеДобавлено: 13 июн 2018, 16:06
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";
                        }
 

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

СообщениеДобавлено: 13 июн 2018, 16:47
Max_Djako8841
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" :(

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

СообщениеДобавлено: 13 июн 2018, 16:50
Tolking
а в любом случае пишется пароль2

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

СообщениеДобавлено: 13 июн 2018, 16:56
Max_Djako8841
Tolking писал(а):а в любом случае пишется пароль2

нет, только когда варианты не правильные.

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

СообщениеДобавлено: 13 июн 2018, 18:20
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";

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

СообщениеДобавлено: 13 июн 2018, 19:10
Max_Djako8841
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";

Благодарю за помощь, тоже думал написать так как вы написали. Но изначально хотел чтобы если первый был не правильный то выводилась бы надпись что пароль не верен, и первый правильный пароль становился не правильным, а работал бы второй. то есть верный вариант всегда один.

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

СообщениеДобавлено: 13 июн 2018, 20:01
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());
        }
 

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

СообщениеДобавлено: 13 июн 2018, 22:50
Max_Djako8841
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());
        }
 

возможно. но я же для себя это делаю, так сказать для души) хотел написать как бы небольшую защиту от бруфорса)очень благодарен вам за помощь и выделенное время ^:)^ .

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

СообщениеДобавлено: 13 июн 2018, 22:55
1max1
От брутфорса лучше всего подойдет капча и кол-во неправильных попыток, после которых блокировка ввода на время.

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

СообщениеДобавлено: 13 июн 2018, 23:01
Max_Djako8841
1max1 писал(а):От брутфорса лучше всего подойдет капча и кол-во неправильных попыток, после которых блокировка ввода на время.

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