Форум программистов, компьютерный форум, киберфорум
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.84/25: Рейтинг темы: голосов - 25, средняя оценка - 4.84
0 / 0 / 0
Регистрация: 31.03.2015
Сообщений: 12

Эффект плавно меняющихся картинок при скролле

15.04.2015, 08:37. Показов 5505. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую вас, UNITY comunity) Хочу реализовать подобный эффект с картинками как здесь http://ww1.lenta.ru/saraevo/ Чтобы картинки двигались вверх-вниз, исчезали или появлялись при прокрутки колесика мышки или при движении пальцем по тачпаду. Правильно я представляю себе - нужно создать несколько объектов Image на сцене с различными значениями координаты z, например. Получится несколько слоев друг за другом с картинками. И ко всему этому массиву прикрутить скрипт, который будет двигать каждую картинку вверх-вниз, по движению пальца по экрану? Верно?
Спасибо за внимание
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.04.2015, 08:37
Ответы с готовыми решениями:

Как сделать такой эффект при скролле
Всем привет, 2 дня парюсь с этим и не могу все четко сделать Интересует момент скролинга на сайте mars.com От вас хочу услышать...

Не могу выбрать несколько меняющихся картинок на фон после активации Win7
всех приветствую! такой трабл: слетела активация Win7 ultimatex64. активатор помог,но теперь в персонализации могу выбрать либо все...

Есть ли способ плавно вывести бордер при наведении, ну и плавно скрыть
Необходимо плавно вывести границу при наведении, и плавно чтобы скрывалась если убрать курсор. Что можете посоветовать?

6
3 / 3 / 0
Регистрация: 23.01.2014
Сообщений: 28
16.04.2015, 17:25
Привет.
В новой системе UI от Юнити есть такая штука как - UI Scroll Rect
Можно ее использовать.
1
0 / 0 / 0
Регистрация: 31.03.2015
Сообщений: 12
16.04.2015, 17:41  [ТС]
Да, спасибо. Вот только как взять данные из UI Scroll Rect, чтобы картинки постепенно исчезали и появлялись в зависимости от позиции на экране во время скроллинга?
0
3 / 3 / 0
Регистрация: 23.01.2014
Сообщений: 28
16.04.2015, 21:28
Цитата Сообщение от wertylabel Посмотреть сообщение
Да, спасибо. Вот только как взять данные из UI Scroll Rect, чтобы картинки постепенно исчезали и появлялись в зависимости от позиции на экране во время скроллинга?
Проверяй позицию картинки - если картинка на в зоне видимости камеры делай ее не видимой.
Например:
C#
1
2
3
4
5
6
7
8
9
public GameObject image;
void Update()
{
    if(image.transform.position.y < (0 - image.size/2) 
                || image.transform.position.y > (Screen.Height + image.size/2))
        image.SetActive(false);
    else
        image.SetActive(true);
}
Вместо UI Scroll Rect еще можно использовать простую анимацию (сделать у Юнити):
1) Анимация картинки выезд с центра екран за пределы вверх
2) Анимация картинки выезд с низу екрана в центр

И делать через Coroutine так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public GameObject image;
public GameObject imageNext;
 
void Start()
{
StartCoroutine(ImageScroll()); // вызывать когда скролиш мышкой вниз
}
 
IEnumerator ImageScroll()
{
    image.GetComponent<Animation>().Play("CenterToTop");
    yield return new WaitForSeconds(1f); // Время анимации
    image.SetActive(false);
    imageNext.SetActive(true);
    imageNext.GetComponent<Animation>().Play("BottomToCenter");
}
Вот почитай через короутины.
Вот про скролинг колесиком:
C#
1
2
3
4
5
6
7
8
9
 
void Update()
{
if (Input.GetAxis("Mouse ScrollWheel") < 0) // скрол вниз
     {
         // Запускаеш короутину
         StartCoroutine(ImageScroll());
     }
}
Проще будет сделать массив картинок:
вот так:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public GameObject[] images;
int i = 0;
 
IEnumerator ImageScroll()
{
    images[i].GetComponent<Animation>().Play("CenterToTop");
    yield return new WaitForSeconds(1f); // Время анимации
    images[i].SetActive(false);
    images[i+1].SetActive(true);
    images[i+1].GetComponent<Animation>().Play("BottomToCenter");
}
 
 
void Update()
{
     if (Input.GetAxis("Mouse ScrollWheel") < 0) // скрол вниз
     {
         // Запускаеш короутину
         StartCoroutine(ImageScroll());
         i++;
     }
}
Написал на коленке без Юнити под рукой так что могут быть ошибки
1
0 / 0 / 0
Регистрация: 31.03.2015
Сообщений: 12
17.04.2015, 08:37  [ТС]
Спасибо за подробные разъяснения с кодом!) Т.е. создаем Canvas с двумя Panel. В каждой Panel создаем по пустому GameObject и в него накидываем картинки. Первый Panel будет служить в качестве заднего плана, а второй - переднего (с персонажами, и прочими объектами). К Panel прикручиваем скрипт UI Scroll Rect, а в Content у UI Scroll Rect закидываем GameObject с картинками. Примерно так можно организовать? Или есть другие способы организации интерфейса?
0
3 / 3 / 0
Регистрация: 23.01.2014
Сообщений: 28
17.04.2015, 10:06
Цитата Сообщение от wertylabel Посмотреть сообщение
Спасибо за подробные разъяснения с кодом!) Т.е. создаем Canvas с двумя Panel. В каждой Panel создаем по пустому GameObject и в него накидываем картинки. Первый Panel будет служить в качестве заднего плана, а второй - переднего (с персонажами, и прочими объектами). К Panel прикручиваем скрипт UI Scroll Rect, а в Content у UI Scroll Rect закидываем GameObject с картинками. Примерно так можно организовать? Или есть другие способы организации интерфейса?
Так только создаем не GameObject a Image (из вкладки UI), или другие елементы из вкладки UI (Text, ScrollBar ...).
0
0 / 0 / 0
Регистрация: 31.03.2015
Сообщений: 12
23.04.2015, 12:46  [ТС]
Спасибо большое за несколько вариантов реализации кода.
По поводу первого:
Данный вариант выдает ошибку: "Assets/img.cs(10,60): error CS1061: Type `UnityEngine.GameObject' does not contain a definition for `size' and no extension method `size' of type `UnityEngine.GameObject' could be found (are you missing a using directive or an assembly reference?)" В документации я не нашел параметра size для Image.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
 
public class img : MonoBehaviour {
 
    public GameObject Image;
    void Update()
    {
        if(Image.transform.position.y < (0 - Image.size/2) 
           || Image.transform.position.y > (Screen.height + Image.size/2))
            Image.SetActive(false);
        else
            Image.SetActive(true);
    }
}
Еще такой вопрос - этот скрипт можно прикрепить к Prefabs из созданного массива картинок?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.04.2015, 12:46
Помогаю со студенческими работами здесь

Добавить эффект "подпрыгивающих" картинок при наведении на блок
Хочу чтобы при наведении на блок с картинками - картинки два раза пригнули к верху на 3px а потом стали на место за 500 мл.с. .box...

Эффект наложения картинок. Выдает ошибку, что не правильно?
void saveIMG(){ myFile=new File(Environment.getExternalStorageDirectory().getAbsolutePath()+&quot;/external_sd/My_imgs&quot;); ...

Выпадающее меню при скролле
Есть меню(1 фото), надо чтобы при скролле вниз он становился выпадающим при наведении на него(2 фото)

Фиксированное меню при скролле
Всем привет. Я заметил одну интересную шапку у лпгенератор(не реклама). У них при скролле появляется меню, слева логотип, по...

Мелькание картинки при скролле
Помогите пожалуйста, не могу избавиться от мелькания. Пробовал TImage, TGraphicControl (Родитель Panel1). Также пробовал DoubleBufered. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru