Малюсенький класс с очень полезной реализацией – затратив минимум усилий, вы всегда будете знать, находится ли мышь над каким-нибудь GUI элементом.

Использование : Просто проверить Event.current.mousePosition на попадание в контроллируемый рект.
Предположим, у вас есть панелька, на ней две кнопки и поле ввода текста. Кнопки и ввод текста проверять нет смысла, а вот панельку стоит проверить. Если она рисуется не лайоутами, то просто проверяете её рект, если наоборот, то используете GUILayoutUtility.GetLastRect и назначаете значение GlobalGUI.MouseOverGUI
Интересует только положительное значение. False же выставится автоматом, если в последнем кадре ни разу небыло TRUE установки.

Вот и всё. Проверил Rect, назначил состояние переменной и забыл о ней. Она обнулится (встанет на False) сама, об этом не стоит беспокоиться.
:-h

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 public static class GlobalGUI
    {
        public static bool MouseOverGUI
        {
            get
            {
                return Time.renderedFrameCount <= _lastFrameOverGUI + 1;
            }

            set
            {
                if (value)
                {
                    _lastFrameOverGUI = Time.renderedFrameCount;
                }
            }
        }
        private static int _lastFrameOverGUI;
    }
VN:F [1.9.3_1094]
Rating: 8.7/10 (7 votes cast)
VN:F [1.9.3_1094]
Rating: +3 (from 5 votes)
Mouse Over GUI, 8.7 out of 10 based on 7 ratings

13 комментариев на «Mouse Over GUI»

  1. rafael

    blood@gxcyp9.stood” rel=”nofollow”>.

    спс 8O…

    VA:F [1.9.3_1094]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.3_1094]
    Rating: 0 (from 0 votes)
  2. maurice

    run@pashw7.bring” rel=”nofollow”>.

    сэнкс за инфу :)

    VA:F [1.9.3_1094]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.3_1094]
    Rating: 0 (from 0 votes)
  3. jeffery

    :|

    спс за инфу :cry:

    VA:F [1.9.3_1094]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.3_1094]
    Rating: 0 (from 0 votes)
  4. terrance

    :oops:

    спс :grin:

    VA:F [1.9.3_1094]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.3_1094]
    Rating: 0 (from 0 votes)
  5. robert

    :x

    спасибо за инфу :cool:

    VA:F [1.9.3_1094]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.3_1094]
    Rating: 0 (from 0 votes)
  6. salvador

    :!:

    спс за инфу :?

    VA:F [1.9.3_1094]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.3_1094]
    Rating: 0 (from 0 votes)
  7. Angel

    easiest@preferences.schaefer” rel=”nofollow”>.…

    благодарен….

    VA:F [1.9.3_1094]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.3_1094]
    Rating: 0 (from 0 votes)
  8. claude

    angling@financier.addicts” rel=”nofollow”>.…

    спасибо за инфу….

    VA:F [1.9.3_1094]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.3_1094]
    Rating: 0 (from 0 votes)
  9. harry

    motorscooters@jollying.comparison” rel=”nofollow”>.…

    спасибо!!…

    VA:F [1.9.3_1094]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.3_1094]
    Rating: 0 (from 0 votes)
  10. armando

    patenting@nil.hallowed” rel=”nofollow”>.…

    спс….

    VA:F [1.9.3_1094]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.3_1094]
    Rating: 0 (from 0 votes)
  11. Dustin

    ornate@domesticity.chien” rel=”nofollow”>.…

    благодарю!…

    VA:F [1.9.3_1094]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.3_1094]
    Rating: 0 (from 0 votes)
  12. Lance

    mavis@pools.arises” rel=”nofollow”>.…

    спасибо!…

    VA:F [1.9.3_1094]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.3_1094]
    Rating: 0 (from 0 votes)
  13. Neil

    ruppert@conelrad.stink” rel=”nofollow”>.…

    сэнкс за инфу!…

    VA:F [1.9.3_1094]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.3_1094]
    Rating: 0 (from 0 votes)

Ваш отзыв

Вы должны войти, чтобы оставлять комментарии.



Страница 1 of 0