Показать сообщение отдельно
Старый 03.11.2010, 19:05   #293
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Фак по Юнити.

Должно решиться просто. Смотрим пост выше и применяем первую функцию. Заменяем:
if (Input.GetMouseButtonDown(0) && _GUILayer.HitTest(Input.mousePosition) == null)  { 
на
if (Input.GetMouseButtonDown(0) && _GUILayer.HitTest(Camera.main.WorldToScreenPoint (Input.mousePosition)) == null)  { 
UPD:
Хотя только сейчас понял что не прав... наверное из-за того что голова болит... возможно стоит инвертировать ось Y у мыши. Т.е.:
Vector2 mp Input.mousePosition;
mp.Screen.height mp.y;
if (
Input.GetMouseButtonDown(0) && _GUILayer.HitTest(mp) == null)  { 
Сам бы я пошел другим путем, я бы проверил попадает ли mp в Rect области GUI, т.е. (new Rect(100, 100, 200, 200)).Contains(mp);.
__________________
Blitz3d to Unity Wiki

Последний раз редактировалось pax, 03.11.2010 в 20:46.
(Offline)
 
Ответить с цитированием