Положение пикселя элемента hud и мыши в единствеC#

Место общения программистов C#
Ответить
Anonymous
 Положение пикселя элемента hud и мыши в единстве

Сообщение Anonymous »

Я пытаюсь определить, находится ли мышь над элементом hud с C# в единстве.
У меня есть элемент hud, занимающий примерно 1/5 правой части экрана .
Я в принципе хочу сделать

Код: Выделить всё

if mouse.x < hud_element.x
Если я нажму здесь (красный крестик всего в нескольких пикселях слева от панели интерфейса)
Изображение

У меня есть эта функция (я добавил несколько Debug.Log, чтобы разобраться с некоторыми вещами)

Код: Выделить всё

        public bool is_mouse_left_of_hud()
{
Vector3 mousePos = Input.mousePosition;
float canvas_left = GameObject.Find("Canvas").GetComponent().offsetMin.x;
float main_hud_panel_left = GameObject.Find("main_hud_panel").GetComponent().anchoredPosition.x;
float info_panel = GameObject.Find("info panel").GetComponent().offsetMin.x;
Debug.Log("££££££££");
Debug.Log("mouse x pos = " + mousePos.x);
Debug.Log("main_hud_panel_left = " + main_hud_panel_left);
Debug.Log("canvas offsetmin x = "+canvas_left);
Debug.Log("info_panel offset = " + info_panel);
Debug.Log("main hud offsetmin x + canvas offsetmin x + + info_panel offset = " + ( canvas_left +main_hud_panel_left + info_panel));
if (mousePos.x < (canvas_left + main_hud_panel_left + info_panel))
{
return true;
}
return false;
}
и щелкнув красный крестик на изображении, я получаю этот результат

Код: Выделить всё

££££££££
mouse x pos = 1299.395
main_hud_panel_left = 331
canvas offsetmin x = 560
info_panel offset = 0
main hud offsetmin x + canvas offsetmin x + + info_panel offset = 891
На изображении ниже показан элемент hud из пользовательского интерфейса редактора.
[img]https: //i.sstatic.net/Da6PTMS4.png[/img]

ps)
Причина, по которой я это делаю: я использую встроенные функции OnMouseDown для проверки обнаружения щелчков в Игровые объекты. Но, к сожалению, это работает через мой HUD. поэтому мне нужна функция, чтобы проверить, находится ли мышь над интерфейсом. Чтобы не нажимать на интерфейс
также здесь показано дерево объектов, ведущих на «информационную панель», и их значения в инспекторе
Изображение


Подробнее здесь: https://stackoverflow.com/questions/787 ... e-in-unity
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»