У меня есть элемент 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
[img]https: //i.sstatic.net/Da6PTMS4.png[/img]
ps)
Причина, по которой я это делаю: я использую встроенные функции OnMouseDown для проверки обнаружения щелчков в Игровые объекты. Но, к сожалению, это работает через мой HUD. поэтому мне нужна функция, чтобы проверить, находится ли мышь над интерфейсом. Чтобы не нажимать на интерфейс
также здесь показано дерево объектов, ведущих на «информационную панель», и их значения в инспекторе

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