Почему мой код не работает со второй кнопкой мыши в C #? - PullRequest
1 голос
/ 18 марта 2019

У меня проблема с моим кодом, и мне очень нужна ваша помощь.

У меня есть текст (в пользовательском интерфейсе) на холсте, и я хочу, чтобы он исчезал с моим первым щелчком мыши и появлялся снова со вторым, но по какой-то причине он не появляется снова.

void Update() 
{
    Debug.Log ("start                      " + isHide);

    if (Input.GetMouseButtonDown (1) && isHide == true) {
        Debug.Log ("after enter 1 and no change   " + isHide);
        text.gameObject.SetActive (false); 
        isHide = false;
        Debug.Log ("after enter 1 and change    " + isHide);
    } else {
        if (Input.GetMouseButtonDown (1) && isHide == false) {
            Debug.Log ("after enter 2 and no change    " + isHide);
            text.gameObject.SetActive (true); 
            isHide = true;
            Debug.Log ("after enter 2 and change   " + isHide);
        }
    }
}

Спасибо

Ответы [ 2 ]

2 голосов
/ 18 марта 2019

вы не можете нажать на то, что не активно. Поэтому вам нужно создать пустую метку на том же месте или оставить пустым значение .text вместо отключения объекта.

Ответ на комментарий:

Это Ват, ты хочешь. Я очень быстро пересоздал ваш код с правкой, предложенной @La pieuvre:

public UnityEngine.UI.Text text;
string oldTextValue = "";
bool isHide = true;
void Update()
{
    Debug.Log( "Start" );
    if( Input.GetMouseButtonDown( 1 ) )
    {
        Debug.Log( "Pressed Mouse button" );
        if( isHide == true )
        {
            Debug.Log( "Disabling Text" );
            oldTextValue = text.text;
            text.text = "";
            isHide = false;
        }
        else if ( isHide == false ) // Else it wil always just enable the button when u press your mouse.
        {
            Debug.Log( "Enabling Text" );
            text.text = oldTextValue;
            isHide = true;
        }
    }
}
0 голосов
/ 18 марта 2019

Кроме того, в дополнение к тому, что сказал @livo, ваше состояние не очень чистое. Вы лучше напишите:

if (Input.GetMouseButtonDown (1)){ 
    if(isHiden){
      // your code
   }else{
      // your code
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...