кто-нить пробовал NGUI?

Общие вопросы о Unity3D

Re: кто-нить пробовал NGUI?

Сообщение seaman 05 апр 2012, 10:31

Но кнопок много

А префабы на что?
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: кто-нить пробовал NGUI?

Сообщение Syberex 05 апр 2012, 14:52

Не понял причем тут префабы :-?
Вижу такой выход - делаю скрипт универсальный, в котором в методах обработчиках пересылаю события с именами контролов в параметре в главный скрипт обработчик, который висит например на камере. Внутри главного скрипта в методах код обработки кликов кнопок разделяется по условию с именем кнопки ... Универсальный скрипт вещаем на все контролы, где нужно обрабатывать что либо B-)

Либо много много скриптов (P)

ЗЫ
В примерах висят на кнопках универсальные скрипты-обработчики, в переменных этих скриптов в инспекторе действия настраиваются - например проигрывание анимации вперед/назад (2 разных скрипта! одного типа...) ... То есть как таковых обработок событий с кодом (ближе к практике...) не нашел пока #-o
Аватара пользователя
Syberex
Адепт
 
Сообщения: 2292
Зарегистрирован: 14 янв 2011, 20:35
Откуда: Кострома
  • Сайт

Re: кто-нить пробовал NGUI?

Сообщение DDDENISSS 05 апр 2012, 15:28

Syberex, т.е. ты не знаешь какая кнопка создала событие. А ведь действительно сколько событий шлются на UICamera и не в одном не указано какой элемент это событие отослал.
А из самой кнопки нельзя узнать ее состояние? Тогда можно было бы вручную опрашивать все кнопки каждый кадр.

gnoblin, я надеялся, что это хоть немного автоматизированно(.
Аватара пользователя
DDDENISSS
UNIверсал
 
Сообщения: 439
Зарегистрирован: 11 сен 2011, 20:33

Re: кто-нить пробовал NGUI?

Сообщение Syberex 06 апр 2012, 07:56

Вот здесь
NGUI: Events
есть такой абзац:
Inside your event functions you can always figure out who sent the event (UICamera.currentCamera), RaycastHit that resulted in this event (UICamera.lastHit), as well as the on-screen position of the touch or mouse (UICamera.lastTouchPosition). You can also determine the ID of the touch event (UICamera.currentTouchID), which is ‘-1′ for the left mouse button, ‘-2′ for right, and ‘-3′ for middle.

Хочу достучаться до UICamera.lastTouchPosition в скрипте, который висит на данной кнопке, получаю ссылку на камеру, в результате у меня UIBaseCamera компонент и там нет таких переменных :-\
Аватара пользователя
Syberex
Адепт
 
Сообщения: 2292
Зарегистрирован: 14 янв 2011, 20:35
Откуда: Кострома
  • Сайт

Re: кто-нить пробовал NGUI?

Сообщение Zavhoz 07 апр 2012, 18:43

Подскажите как программно в компоненте UISlicedSprite можно поменять sprite атласа, иначе говоря изменить оффсет текстуры. Просмотрел все примеры, ничего подобного не встретил. Почитал документацию и там тоже не увидел.

Заранее спасибо.
FUNNY BLOX
Аватара пользователя
Zavhoz
UNITрон
 
Сообщения: 197
Зарегистрирован: 10 фев 2009, 07:23
Откуда: Караганда KZ
  • ICQ

Re: кто-нить пробовал NGUI?

Сообщение Syberex 08 апр 2012, 05:27

Zavhoz писал(а):Подскажите как программно в компоненте UISlicedSprite можно поменять sprite атласа, иначе говоря изменить оффсет текстуры. Просмотрел все примеры, ничего подобного не встретил. Почитал документацию и там тоже не увидел.

UISlicedSprite образован от UISprite, в котором есть public переменная atlas с типом UIAtlas. А когда мы создаем атлас, получается префаб с уже висящим скриптом UIAtlas.
Аватара пользователя
Syberex
Адепт
 
Сообщения: 2292
Зарегистрирован: 14 янв 2011, 20:35
Откуда: Кострома
  • Сайт

Re: кто-нить пробовал NGUI?

Сообщение Syberex 08 апр 2012, 05:50

Syberex писал(а):...
Хочу достучаться до UICamera.lastTouchPosition в скрипте, который висит на данной кнопке, получаю ссылку на камеру, в результате у меня UIBaseCamera компонент и там нет таких переменных :-\

Отвечу сам себе :)
UICamera образован от UIBaseCamera (dll), в котором lastTouchPosition статический!

---
UICamera.currentTouchID нету, видно справка устарела :-w , есть UICamera.lastTouchID.

Пытаюсь отловить отловить событие отпускания левой кнопки - конец тача с движением (OnDrag), но ничего кроме OnDrop нет, а оно не подходит (P)
Последний раз редактировалось Syberex 08 апр 2012, 16:49, всего редактировалось 1 раз.
Аватара пользователя
Syberex
Адепт
 
Сообщения: 2292
Зарегистрирован: 14 янв 2011, 20:35
Откуда: Кострома
  • Сайт

Re: кто-нить пробовал NGUI?

Сообщение Zavhoz 08 апр 2012, 16:46

Syberex писал(а):UISlicedSprite образован от UISprite, в котором есть public переменная atlas с типом UIAtlas. А когда мы создаем атлас, получается префаб с уже висящим скриптом UIAtlas.


всю наследственность я проследил, в этом плане документация линками изобилует... но тем не менее вопрос, по крайней мере для меня остаётся открытым, я так и не понял каким методом, или в какое свойство засунуть новое значение...

пробую следующим образом:
Синтаксис:
Используется csharp
slicedSprite.sprite = slicedSprite.atlas.GetSprite("spriteName");

визуально ничего не меняется, но при остановке сцены, в инспекторе slicedSprite, превью текущего спрайта, на секунду меняется на тот, который я пытался установить программно, и тут же становится стандартным.

если не сложно, то прошу указать каким способом правильно изменить спрайт.
FUNNY BLOX
Аватара пользователя
Zavhoz
UNITрон
 
Сообщения: 197
Зарегистрирован: 10 фев 2009, 07:23
Откуда: Караганда KZ
  • ICQ

Re: кто-нить пробовал NGUI?

Сообщение Syberex 08 апр 2012, 17:09

Пошарился в коде, вот так думаю:
Синтаксис:
Используется csharp
UIAtlas newAtlas; //получаем новый атлас из префаба, в инспекторе или в коде ...
slicedSprite.atlas = newAtlas;
slicedSprite.spriteName = "spriteName";   // свойство типа string в UISprite
 

В инспекторе также, выбираем атлас, потом из списка выбираем спрайт ...
Аватара пользователя
Syberex
Адепт
 
Сообщения: 2292
Зарегистрирован: 14 янв 2011, 20:35
Откуда: Кострома
  • Сайт

Re: кто-нить пробовал NGUI?

Сообщение Zavhoz 08 апр 2012, 17:17

Большое спасибо!
slicedSprite.spriteName = "spriteName"; - то что надо, а я полез копать глубже...
FUNNY BLOX
Аватара пользователя
Zavhoz
UNITрон
 
Сообщения: 197
Зарегистрирован: 10 фев 2009, 07:23
Откуда: Караганда KZ
  • ICQ

Re: кто-нить пробовал NGUI?

Сообщение Syberex 08 апр 2012, 18:43

Странно конечно, но UICamera.lastTouchID на компе всегда равен -1, на девайсе всегда 0.

А еще оказалось за событием OnDrag идет OnPress, если не сработало OnDrop видимо :-? ... Вообщем уже кое-что, но логика загадочная (полная Ж)

---
Вот в таком порядке они идут:
OnPress(isDown = true) // нажали
OnDrag() // ведем палец по экрану
OnPress(isDown = false) // отпустили

---
Облом! Со скидкой купить уже не успел :((
Аватара пользователя
Syberex
Адепт
 
Сообщения: 2292
Зарегистрирован: 14 янв 2011, 20:35
Откуда: Кострома
  • Сайт

Re: кто-нить пробовал NGUI?

Сообщение The Jet 13 апр 2012, 16:20

вопрос наверное детский, я нарисовал в ngui панели, слева снизу и тд, как сделать так чтобы при смене аспекта с 4:3 например на 16:9 эти панельки продолжади *липнуть* к краям экрана? рескейл и бинды по краешку отлично работают в том же аспекте, в бОльшем или меньшем разрешении.. однако, как только меняю аспект экрана, панели не хотят цеплятся к новым *краям* для них остается 4:3 и хоть ты тресни.. галочка automatic нифига не влияет на это безобразие(
The Jet
UNец
 
Сообщения: 21
Зарегистрирован: 09 фев 2012, 10:56

Re: кто-нить пробовал NGUI?

Сообщение Zavhoz 13 апр 2012, 16:58

The Jet, а первый пример смотрели? там всё наглядно показано...
FUNNY BLOX
Аватара пользователя
Zavhoz
UNITрон
 
Сообщения: 197
Зарегистрирован: 10 фев 2009, 07:23
Откуда: Караганда KZ
  • ICQ

Re: кто-нить пробовал NGUI?

Сообщение The Jet 13 апр 2012, 17:07

Zavhoz писал(а):The Jet, а первый пример смотрели? там всё наглядно показано...

каюсь, глупая привычка читать журналы *с конца* сыграла злую шутку ) я начал с последнего примера и вот только добрался до разжевывания якорей в первом где визуально сразу стал понятен процесс раскидывания по ним))
The Jet
UNец
 
Сообщения: 21
Зарегистрирован: 09 фев 2012, 10:56

Re: кто-нить пробовал NGUI?

Сообщение Syberex 14 апр 2012, 05:39

Сделал мобильный джойстик :ymparty:
Но не за четыре часа, а за неделю мучений ... которые в принципе оправдались B-)
HTML код для вашего блога :
Код: Выделить всё
<script language='javascript' type="text/javascript"> document.write("<iframe marginheight='0' src='http://unity3d.ru/distribution/player.php?url=http://dl.dropbox.com/u/73172170/NguiJoystickTest/WebPlayer/WebPlayer.unity3d&w=600&h=450&t=false&preview=1' height='"+(450+30)+"' width='600' frameborder='0' scrolling='no'></iframe>"); </script>


ЗЫ Если кому будет интересно, попробую сделать небольшое описание и выложить скрипт.
Последний раз редактировалось Syberex 14 апр 2012, 06:22, всего редактировалось 2 раз(а).
Аватара пользователя
Syberex
Адепт
 
Сообщения: 2292
Зарегистрирован: 14 янв 2011, 20:35
Откуда: Кострома
  • Сайт

Пред.След.

Вернуться в Общие вопросы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9