217 |
С т р а н и ц а
Определение щелчка в инвентарной системе
Мы можем определить кликает ли кто-нибудь по нашим предметам инвентаря,
просто выполнив проверку указателя в прямоугольнике. Тест указателя в
прямоугольнике, выполняется проверкой указателя в контенте прямоугольника.
Добавьте следующую
функцию-член в struct Widget:
struct Widget
{
// ..
остальная часть структуры такая же как прежде ..
bool hit( FVector2D p )
{
// +---+ top (0)
// | |
// +---+ bottom (2) (bottom > top)
// L R
return p.X > left() && p.X < right() && p.Y > top() && p.Y < bottom();
}
};
Тест указателя в прямоугольнике выглядит следующим образом:
Итак, нажатие происходит, если p.X выполняет следующие условия:
Справа от
left() (p.X > left())
Слева от right() (p.X < right())
Снизу от top() (p.Y > top())
Сверху от bottom() (p.Y < bottom())
Запомните, что в UE4 (и визуализация UI в целом) ось
у инвертирована. Другими
словами, ось
у в UE4 идёт вниз. Это означает, что top() меньше чем bottom(), так
как начало отсчёта координат (точка (0,0)) находится в верхнем левом углу экрана.