Реализация вращающегося барабана (GUI)

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

Реализация вращающегося барабана (GUI)

Сообщение Savalin 17 ноя 2011, 12:14

Всем привет!
Есть задача сделать некий список элементов в виде вращающегося барабана (по такому принципу: Изображение)
И тут я столкнулся с одной непоняткой: как реализовать кроппинг, т.е. чтобы обрезать элементы, заходящие на некоторую определенную границу (в данном случае верхняя и нижняя границы барабана).

Если у кого-то есть пример реализции чего-то подобного - было бы вообще шикарно, но хотя бы просветите меня насчет кроппинга средствами Unity GUI
Savalin
UNец
 
Сообщения: 35
Зарегистрирован: 07 окт 2011, 11:00

Re: Реализация вращающегося барабана (GUI)

Сообщение DbIMok 17 ноя 2011, 12:41

окологуевыми средствами, имхо, только через Graphics.DrawTexture с двухтекстурным шейдером. первый слой маска для эффекта барабана, второй текстура с цифрами и менять ее offset
правильный вопрос - половина ответа. учитесь формулировать вопросы понятно.
Новости > _Telegram чат @unity3d_ru (11.6k/4.8k online) > _Telegram канал @unity_news (4.8k подписчиков) > Телеграм тема > "Спасибо"
Аватара пользователя
DbIMok
Адепт
 
Сообщения: 6372
Зарегистрирован: 31 июл 2009, 14:05

Re: Реализация вращающегося барабана (GUI)

Сообщение Savalin 17 ноя 2011, 13:13

Насколько я понимаю, тот слой-маска, который будет перекрывать слой с цифрами должен быть непрозрачным?

Дело такое, что фон подложки за пределами барабана по эскизу полупрозрачный.. Неужели такой довольно распространенный элемент управления делается через такие танцы с бубном? :-?
Savalin
UNец
 
Сообщения: 35
Зарегистрирован: 07 окт 2011, 11:00

Re: Реализация вращающегося барабана (GUI)

Сообщение DbIMok 17 ноя 2011, 13:23

насчет слоев-масок, как нужно, так и делайте. их может быть не два а больше, они могут по разному комбинироваться для достижения разных эффектов. фон подложки к барабану не имеет никакого отношения. чтобы понять как это работает, возьмите plane с таким материалом, назначьте текстуры и потренируйтесь изменяя Tiling и Offset. это не танцы с бубном, это та работа, которой мы все тут занимаемся - делаем то что нам нужно, используя средства движка.
правильный вопрос - половина ответа. учитесь формулировать вопросы понятно.
Новости > _Telegram чат @unity3d_ru (11.6k/4.8k online) > _Telegram канал @unity_news (4.8k подписчиков) > Телеграм тема > "Спасибо"
Аватара пользователя
DbIMok
Адепт
 
Сообщения: 6372
Зарегистрирован: 31 июл 2009, 14:05

Re: Реализация вращающегося барабана (GUI)

Сообщение Savalin 17 ноя 2011, 14:11

Пожалуй, мне просто немного не хватает опыта, поэтому и говорю "странные вещи" =)
Спасибо! Пойду экмпериментировать
Savalin
UNец
 
Сообщения: 35
Зарегистрирован: 07 окт 2011, 11:00

Re: Реализация вращающегося барабана (GUI)

Сообщение M.A.K. 18 ноя 2011, 11:23

Можно еще сделать этот барабан где-нить вдали от основной сцены объектами. Поставить камеру и рендерить её на экран, используя Normalized View Port Rect. А уж циферки на барабане менять путем вращения барабана.
M.A.K.
UNец
 
Сообщения: 42
Зарегистрирован: 16 июн 2011, 12:02

Re: Реализация вращающегося барабана (GUI)

Сообщение Savalin 18 ноя 2011, 12:58

M.A.K. писал(а):Можно еще сделать этот барабан где-нить вдали от основной сцены объектами. Поставить камеру и рендерить её на экран, используя Normalized View Port Rect. А уж циферки на барабане менять путем вращения барабана.

А это мысль, спасибо! ;)
Savalin
UNец
 
Сообщения: 35
Зарегистрирован: 07 окт 2011, 11:00

Re: Реализация вращающегося барабана (GUI)

Сообщение M.A.K. 18 ноя 2011, 17:14

Savalin писал(а):А это мысль, спасибо! ;)

На здоровье
M.A.K.
UNец
 
Сообщения: 42
Зарегистрирован: 16 июн 2011, 12:02

[РЕШЕНО] Реализация вращающегося барабана (GUI)

Сообщение Savalin 22 дек 2011, 14:44

Решил реализацию барабана через GUI.BeginScrollView(position : Rect, scrollPosition : Vector2, viewRect : Rect) : Vector2
При помощи стиля скрыл полосы прокрутки, отлавливал мышь над прямоугольником и если она зажата, то менял scrollPosition на разницу между позицией клика и текущим положением мыши. По отпускании кнопки мыши вызывается корутина, которая фиксирует барабан на ближайшем устойчивом месте.

Если кому-то вдруг понадобится - как вариант B-)
Savalin
UNец
 
Сообщения: 35
Зарегистрирован: 07 окт 2011, 11:00

Re: Реализация вращающегося барабана (GUI)

Сообщение Woolf 22 дек 2011, 16:36

Хм.. для таких вещей в опенгл есть glScissor (http://www.opengl.org/sdk/docs/man/xhtml/glScissor.xml) вот только не знаю, поддерживает ли юнитевский GL эту фишку, надо уточнить.
Разработчик theFisherOnline - там, где клюёт
Разработчик Atom Fishing II - Первая 3D MMO про рыбалку
Разработчик Atom Fishing - Рыбалка на поплавок, донку, нахлыст, блесну в постъядерный период.
Аватара пользователя
Woolf
Адепт
 
Сообщения: 7179
Зарегистрирован: 02 мар 2009, 16:59


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

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

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