Суббота, 09 Ноября 2024, 04:32

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Scrollbar
desantaavДата: Понедельник, 29 Февраля 2016, 21:23 | Сообщение # 1
был не раз
Сейчас нет на сайте
Здравствуйте. Есть блок с Scrollbar, есть камера на которой стоить скрипт, который позволяет вращать во круг некоего центра. Когда пытаешься использовать Scrollbar то идет соответственно и вращение объекта, что для меня не желательно. Scrollbar находится на Panel, я думаю можно при наведении мышки на Panel и зажатие левой кнопки мышки отключать скрипт камеры.... а теперь вопрос....а как ? C# знаю плохо пока

Добавлено (29 февраля 2016, 21:23)
---------------------------------------------

Код
bool Vizov = true;


    
    void Update ()
    {
    
     if (Input.GetMouseButtonDown(0))
{
     if (Vizov)
     {
         Vizov = false;
         GameObject OBG1 = GameObject.Find("Cube");
         CameraMove skr1 = OBG1.GetComponent<CameraMove>();
         skr1.enabled = false;
     }
}

if (Input.GetMouseButtonUp(0))
{
     Vizov = true;
     GameObject OBG1 = GameObject.Find("Cube");
     CameraMove skr1 = OBG1.GetComponent<CameraMove>();
     skr1.enabled = true;
}  

}  


Вот код который позволяет отключать и включать скрипт с камеры, но вот он работает на весь экран а не на область объекта, есть ли какая функция с помощью которой можно было бы заставить работать скрипт только на определенной области?
VerdCSДата: Понедельник, 29 Февраля 2016, 22:13 | Сообщение # 2
частый гость
Сейчас нет на сайте
Вариантов много. Проще всего я думаю добавить на scrollbar компонент Event Trigger. Ну а у Event Trigger добавить события. Например Begin Drag и End Drag. По первому событию отключать вращение камеры, по второму включать. В любом случае событий много, можно подобрать что то под свои требования.
LertmindДата: Вторник, 01 Марта 2016, 03:12 | Сообщение # 3
заслуженный участник
Сейчас нет на сайте
Специальные обработчики - это кривовато. Есть метод IsPointerOverGameObject(). По ссылке есть пример. Вставляешь такую проверку в скрипт на камере, если условие выполняется, то курсор над UI и значит не надо вертеть твой объект:
Код
if(EventSystem.current.IsPointerOverGameObject())
{
    Debug.Log("Clicked on the UI");
}

И не забудь дописать using UnityEngine.EventSystems;
desantaavДата: Вторник, 01 Марта 2016, 11:27 | Сообщение # 4
был не раз
Сейчас нет на сайте
Lertmind, и реально это намного проще...всего 2 строчки в коде и все готово , спасибо!
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг