Всплывающие окна и координаты мыши - Форум Игроделов
Пт, 17 Май 2024, 06:03 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум Игроделов » UNITY3D » СКРИПТИНГ » Всплывающие окна и координаты мыши ([C#])
Всплывающие окна и координаты мыши
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
Малопонятно... cool

X.cor.R (Prologue)
 
СообщениеМалопонятно... cool

Автор - Левша
Дата добавления - 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 некоторые заскоки... большой проблемы тут не вижу. smile


X.cor.R (Prologue)
 
Сообщение
Quote (david-vne)
Только почему с иксом прокатывает, а "У" нужно инвертировать?

Есть у ГУИ Unity некоторые заскоки... большой проблемы тут не вижу. smile

Автор - Левша
Дата добавления - 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
Форум Игроделов » UNITY3D » СКРИПТИНГ » Всплывающие окна и координаты мыши ([C#])
  • Страница 1 из 1
  • 1
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2024