Обнаружение первого или второго выпуска кнопки мыши?

Я хочу знать, как определить, когда пользователь выпустил кнопку мыши в первый раз, или время после этого:

Псевдо-код:

 if *first* (Input.GetMouseButtonUp(0))
   {
       do something
   }

 if *second, third, fourth..etc.* (Input.GetMouseButtonUp(0))
   {
       do something else
   }

Я действительно не знаю, как это сделать. Я уверен, что это довольно просто!

+2
источник поделиться
4 ответа

Это только идея, но вы можете сделать это, используя переменную флага, например:

private static bool WasFirstTimeReleased = false;

if (Input.GetMouseButtonUp(0))
{
    if (!WasFirstTimeReleased)
    {
        WasFirstTimeRelease = true;
        //do your stuff for first time
    }
    else
    {
        //do your stuff for all other times
    }
}
+2
источник

Как правило, вы должны помнить, сколько раз была выпущена кнопка. Просто создайте поле в своем классе:

private int clicks = 0;

тогда:

   if (Input.GetMouseButtonUp(0))
   {
       if(clicks == 0)
       {
           // do something on first click
       }
       else
       {
           // do something on further click
       }

       clicks++;
   }

Если объект, в котором вы храните счетчик кликов, создается каждый раз, когда вы нажимаете кнопку мыши, то отметьте счетчик, используя статическое слово.

+1
источник

Следите за щелчками мыши:

int _leftUp;

void Update()
{
    var leftUp = Input.GetMouseButtonUp(0);
    if (leftUp) _leftUp++;

    // etc ...
}
0
источник

Самый простой способ добиться этого - использовать счетчик, чтобы проверить количество раз, когда пользователь выпустил кнопку.

private int releaseCounter = 0;

И затем в выражении if:

if (Input.GetMouseButtonUp(0)) {
    releaseCounter++;

    //If you know on which release you want the code to be executed, 
    //replace the x with that number.
    if (releaseCounter == x) { 
        //your code here
    }

    //If you want the code to be executed at set intervals.
    //replace the x with the interval number.
    if(releaseCounter%x == 0) {
        //your code here
    }
}

Надеюсь, я помог.

0
источник

Посмотрите другие вопросы по меткам или Задайте вопрос