Всплывающие окна и координаты мыши
david-vne Дата: Ср, 02 Ноя 2011, 22:18 | Сообщение # 1
Сообщений: 72
Награды:
2
Репутация:
28
Статус: Offline
Всем привет. Пишу демку ксоникса (позже похвастаюсь, это мой первый проект на unity). Столкнулся с проблемой (не силен в 3D): есть кубы, на которых 3D тексты с коллайдером - это меню. Нужно, чтобы при наведении на какую-либо из надписей всплывало сообщение (бокс или окно) рядом со стрелкой мыши Code
// скрипт висит на 3D тексте: bool show = false; void OnMouseOver() { show = true; } void OnMouseExit() { show = false; } void OnGUI() { if(show) { GUI.Window(0, new Rect(Input.mousePosition.x, Input.mousePosition.y, 200, 100), Wind, "r"); } }
Собственно, проблема в том, что проекция на экран косая: по x все нормально, а y бесится. В общем, при наведении курсора на 3Д текст, рядом с курсором должно всплывать окно (уже в 2Д, проекция на экран). Окно всплывает, по "Х" верно, но где-то внизу. И если курсор поднимать вверх окно опускается вниз, и наоборот( Подскажите, что подкрутить.
Welcome to my project: http://gamecreatingcommunity.ru/forum/67-3994-1
Сообщение Всем привет. Пишу демку ксоникса (позже похвастаюсь, это мой первый проект на unity). Столкнулся с проблемой (не силен в 3D): есть кубы, на которых 3D тексты с коллайдером - это меню. Нужно, чтобы при наведении на какую-либо из надписей всплывало сообщение (бокс или окно) рядом со стрелкой мыши Code
// скрипт висит на 3D тексте: bool show = false; void OnMouseOver() { show = true; } void OnMouseExit() { show = false; } void OnGUI() { if(show) { GUI.Window(0, new Rect(Input.mousePosition.x, Input.mousePosition.y, 200, 100), Wind, "r"); } }
Собственно, проблема в том, что проекция на экран косая: по x все нормально, а y бесится. В общем, при наведении курсора на 3Д текст, рядом с курсором должно всплывать окно (уже в 2Д, проекция на экран). Окно всплывает, по "Х" верно, но где-то внизу. И если курсор поднимать вверх окно опускается вниз, и наоборот( Подскажите, что подкрутить. Автор - david-vne Дата добавления - 02 Ноя 2011 в 22:18
Левша Дата: Ср, 02 Ноя 2011, 22:42 | Сообщение # 2
Черный Волк
Сообщений: 7257
Награды:
30
Репутация:
3313
Статус: Offline
Малопонятно...
X.cor.R (Prologue)
Сообщение Малопонятно... Автор - Левша Дата добавления - 02 Ноя 2011 в 22:42
david-vne Дата: Ср, 02 Ноя 2011, 22:52 | Сообщение # 3
Сообщений: 72
Награды:
2
Репутация:
28
Статус: Offline
В общем, при наведении курсора на 3Д текст, рядом с курсором должно всплывать окно (уже в 2Д, проекция на экран). Окно всплывает, по "Х" верно, но где-то внизу. И если курсор поднимать вверх окно опускается вниз, и наоборот(
Welcome to my project: http://gamecreatingcommunity.ru/forum/67-3994-1
Сообщение В общем, при наведении курсора на 3Д текст, рядом с курсором должно всплывать окно (уже в 2Д, проекция на экран). Окно всплывает, по "Х" верно, но где-то внизу. И если курсор поднимать вверх окно опускается вниз, и наоборот( Автор - david-vne Дата добавления - 02 Ноя 2011 в 22:52
Левша Дата: Ср, 02 Ноя 2011, 23:09 | Сообщение # 4
Черный Волк
Сообщений: 7257
Награды:
30
Репутация:
3313
Статус: Offline
Quote (david-vne )
Окно всплывает, по "Х" верно, но где-то внизу. И если курсор поднимать вверх окно опускается вниз, и наоборот
Обрати внимание на знаки (+-) значения позиции, наверно надо инвертировать значение по Y.
X.cor.R (Prologue)
Сообщение Quote (david-vne )
Окно всплывает, по "Х" верно, но где-то внизу. И если курсор поднимать вверх окно опускается вниз, и наоборот
Обрати внимание на знаки (+-) значения позиции, наверно надо инвертировать значение по Y.Автор - Левша Дата добавления - 02 Ноя 2011 в 23:09
david-vne Дата: Ср, 02 Ноя 2011, 23:19 | Сообщение # 5
Сообщений: 72
Награды:
2
Репутация:
28
Статус: Offline
Точняк) Спасибо. Так получилось: Code
bool show = false; void OnMouseOver() { renderer.material.color = Color.black; show = true; } void OnMouseExit() { renderer.material.color = Color.green; show = false; } void OnGUI() { if(show) { GUI.Window(0, new Rect(Input.mousePosition.x, Screen.height - Input.mousePosition.y, 200, 100), Wind, "r"); } }
Screen.height - Input.mousePosition.y Только почему с иксом прокатывает, а "У" нужно инвертировать? Это ж вроде не XNA GameStudio со своим "неправильным" 2Д
Welcome to my project: http://gamecreatingcommunity.ru/forum/67-3994-1
Сообщение Точняк) Спасибо. Так получилось: Code
bool show = false; void OnMouseOver() { renderer.material.color = Color.black; show = true; } void OnMouseExit() { renderer.material.color = Color.green; show = false; } void OnGUI() { if(show) { GUI.Window(0, new Rect(Input.mousePosition.x, Screen.height - Input.mousePosition.y, 200, 100), Wind, "r"); } }
Screen.height - Input.mousePosition.y Только почему с иксом прокатывает, а "У" нужно инвертировать? Это ж вроде не XNA GameStudio со своим "неправильным" 2Д Автор - david-vne Дата добавления - 02 Ноя 2011 в 23:19
Левша Дата: Ср, 02 Ноя 2011, 23:23 | Сообщение # 6
Черный Волк
Сообщений: 7257
Награды:
30
Репутация:
3313
Статус: Offline
Quote (david-vne )
Только почему с иксом прокатывает, а "У" нужно инвертировать?
Есть у ГУИ Unity некоторые заскоки... большой проблемы тут не вижу.
X.cor.R (Prologue)
Сообщение Quote (david-vne )
Только почему с иксом прокатывает, а "У" нужно инвертировать?
Есть у ГУИ Unity некоторые заскоки... большой проблемы тут не вижу. Автор - Левша Дата добавления - 02 Ноя 2011 в 23:23
Snake_B Дата: Ср, 09 Ноя 2011, 20:41 | Сообщение # 7
Сообщений: 8
Награды:
0
Репутация:
8
Статус: Offline
вопросик по юнити... вот эта вот функция: Code
Application.CaptureScreenshot("");
в режиме редактора работает... делает скриншоты, всё как надо... а вот в ехе файле делать скриншот не хочет.... что делать )
Сообщение вопросик по юнити... вот эта вот функция: Code
Application.CaptureScreenshot("");
в режиме редактора работает... делает скриншоты, всё как надо... а вот в ехе файле делать скриншот не хочет.... что делать ) Автор - Snake_B Дата добавления - 09 Ноя 2011 в 20:41
seaman Дата: Ср, 09 Ноя 2011, 20:50 | Сообщение # 8
Гуру
Сообщений: 1748
Награды:
10
Репутация:
660
Статус: Offline
Quote
This function does nothing if used from inside the web player or a Dashboard widget.
Вы не из Веб-плейера пробуете?
Сообщение Quote
This function does nothing if used from inside the web player or a Dashboard widget.
Вы не из Веб-плейера пробуете?Автор - seaman Дата добавления - 09 Ноя 2011 в 20:50
Snake_B Дата: Чт, 10 Ноя 2011, 00:29 | Сообщение # 9
Сообщений: 8
Награды:
0
Репутация:
8
Статус: Offline
да не... чё ж я совсем что ле )) под виндой... одна и та же... и в редакторе и ехе... п.с... блин.... не в ту тему вопрос то задал...
Сообщение отредактировал Snake_B - Чт, 10 Ноя 2011, 04:51
Сообщение да не... чё ж я совсем что ле )) под виндой... одна и та же... и в редакторе и ехе... п.с... блин.... не в ту тему вопрос то задал... Автор - Snake_B Дата добавления - 10 Ноя 2011 в 00:29