Форум программистов, компьютерный форум, киберфорум
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/64: Рейтинг темы: голосов - 64, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 29.03.2018
Сообщений: 13
1

Выдвигаемое меню

29.04.2018, 00:45. Показов 12531. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Господа, прошу помощи! Мне нужно сделать простенькое выдвигаемое меню, как во многих приложения. Провёл пальцем со стороны в строну, меню вылезло. В интернете подобных уроков, видеоуроков и вообще любой информации не нашёл. Пытался использовать scroll rect, но до меня не доходит, как блокировать движение меню.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.04.2018, 00:45
Ответы с готовыми решениями:

Выдвигаемое меню
Хочу сделать выдвигаемое меню как в приложении Youtube для android. Не подскажете куда копать? Или...

Боковое выдвигаемое меню сдвигает рабочую область
<!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content="text/html;...

Работа с меню. При клике на кнопке меню или вне его, меню должно закрываться
Добрый вечер! Изучаю JQuery. Вот ради развития решил написать меню, практически такое же как на...

Как добавить выплывающее меню к уже готовому горизонтальному меню (не меняя дизайн горизонтального меню)?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"...

15
753 / 600 / 204
Регистрация: 06.08.2015
Сообщений: 2,432
29.04.2018, 12:27 2
Надо ловить свайп и ручками вытаскивать из-за экрана.
0
0 / 0 / 0
Регистрация: 29.03.2018
Сообщений: 13
29.04.2018, 20:56  [ТС] 3
Cr0c, поподробнее можно?
0
753 / 600 / 204
Регистрация: 06.08.2015
Сообщений: 2,432
30.04.2018, 07:19 4
WaRnInGoD, то есть сразу готовый код писать?
0
0 / 0 / 0
Регистрация: 29.03.2018
Сообщений: 13
30.04.2018, 10:37  [ТС] 5
Можно, но я думаю что это сложно. Ну всё таки, если есть хоть какая нибудь информация (текстовая, графическая и т.д.) то скиньте мне её, буду благодарен.
0
Эксперт .NETАвтор FAQ
10410 / 5140 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
30.04.2018, 11:38 6
Лучший ответ Сообщение было отмечено WaRnInGoD как решение

Решение

Цитата Сообщение от WaRnInGoD Посмотреть сообщение
Мне нужно сделать простенькое выдвигаемое меню, как во многих приложения. Провёл пальцем со стороны в строну, меню вылезло.
1) На канвасе создаем панель. Сдвигаем панель так, что бы она не была видна, привязываем якоря к левому краю:

Выдвигаемое меню


2) Создаем следующий скрипт и вешаем его на панель:

MenuController
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
using UnityEngine;
 
public class MenuController : MonoBehaviour
{
    public float moveSpeed = 600;
 
    private Vector2 startPos;
    private Vector2 target;
 
    void Start ()
    {
        var tr = transform as RectTransform;
        target = tr.anchoredPosition;
    }
 
    void Update ()
    {
        var tr = transform as RectTransform;
        tr.anchoredPosition = Vector2.MoveTowards(tr.anchoredPosition, target, moveSpeed * Time.deltaTime);
 
        if (Input.touchCount > 0) 
        {             
            Touch touch = Input.touches[0];
 
            switch (touch.phase)                 
            {                 
                case TouchPhase.Began: startPos = touch.position; break;
                case TouchPhase.Moved:
                    //swipe horizontal?
                    if (touch.position.x - startPos.x > 20)
                        target = new Vector2(tr.sizeDelta.x / 2, tr.anchoredPosition.y);//show menu
                    if (touch.position.x - startPos.x < -20)
                        target = new Vector2(-tr.sizeDelta.x / 2, tr.anchoredPosition.y);//hide menu
                    break;
            }
        }
    }
}


Результат - меню выдвигается и задвигается по свайпу.
Вложения
Тип файла: zip Test9.zip (2.40 Мб, 133 просмотров)
3
0 / 0 / 0
Регистрация: 29.03.2018
Сообщений: 13
30.04.2018, 19:25  [ТС] 7
Storm23, ОГРОМНОЕ спасибо!

Добавлено через 25 минут
Storm23, либо что-то не так, но у меня свап не работает... При открытии проекта, написал что у меня другая версия Unity.
0
753 / 600 / 204
Регистрация: 06.08.2015
Сообщений: 2,432
30.04.2018, 20:21 8
Я писал корутину с (transform, startPos, endPos, time) и запускал её для анимации.
Можно по дельте тача выдвигать меню - так отзывчивей.
0
Эксперт .NETАвтор FAQ
10410 / 5140 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
30.04.2018, 21:07 9
Цитата Сообщение от WaRnInGoD Посмотреть сообщение
либо что-то не так, но у меня свап не работает... При открытии проекта, написал что у меня другая версия Unity.
Код 100% рабочий. От версии Unity это не зависит.
но у меня свап не работает
Надеюсь вы его на смартфоне тестируете? От мышки свайп не работает.
0
82 / 78 / 34
Регистрация: 13.02.2018
Сообщений: 1,347
30.04.2018, 21:27 10
Cr0c, так можно же просто задать анимацию в Animation, там и всякие выкрутасы можно сделать, это же не колесо, можно сделать и без кода.

но скорее всего он хочет что бы меню было привязано к пальцу, то есть так же как и двигается рабочая панель на смартфонах, тогда нужно запомнить момент нажатия, а потом от него выравнивать канвас
0
753 / 600 / 204
Регистрация: 06.08.2015
Сообщений: 2,432
01.05.2018, 02:12 11
k0vpack, одну анимацию на разные (в том числе по размеру) элементы ставить неудобно.

Добавлено через 1 минуту
Но можно сделать статик метод для анимации и его вызывать, а метод будет сам ставить за экран и выдвигать на родную позицию.
0
82 / 78 / 34
Регистрация: 13.02.2018
Сообщений: 1,347
01.05.2018, 20:10 12
Cr0c, а если двигать Canvav то есть родитель, все же тоже будет двигаться, или нет?
0
753 / 600 / 204
Регистрация: 06.08.2015
Сообщений: 2,432
01.05.2018, 21:55 13
k0vpack, Зачем канвас, когда элементы на панели?
0
82 / 78 / 34
Регистрация: 13.02.2018
Сообщений: 1,347
01.05.2018, 21:57 14
Cr0c, я имел ввиде панель, ошибся из-за того что как раз делал канвас, просто двигать другую панель по верх этой и все, как я уже говорил, лучше сделать
Цитата Сообщение от k0vpack Посмотреть сообщение
но скорее всего он хочет что бы меню было привязано к пальцу, то есть так же как и двигается рабочая панель на смартфонах, тогда нужно запомнить момент нажатия, а потом от него выравнивать панель
0
753 / 600 / 204
Регистрация: 06.08.2015
Сообщений: 2,432
01.05.2018, 23:56 15
k0vpack, touch.deltaPosition есть, не надо хранить начало нажатия.
0
0 / 0 / 0
Регистрация: 16.08.2021
Сообщений: 1
16.08.2021, 23:57 16
класс) спасибо)
0
16.08.2021, 23:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.08.2021, 23:57
Помогаю со студенческими работами здесь

Раскрывающееся меню - при открытии/закрытии вложенного меню закрывается все меню
Проблема во вложенном меню. При открытии/закрытии вложенного меню закрывается все меню. Надо, чтобы...

Добавить меню к итему меню, который уже находится в главном меню
Как можно программно добавить подменю к итему меню, который находится в главном меню? Чтобы...

Horizontal_multilevel шаблон меню. Первый и последний элемент вложенного меню отличаются
Доброго времени суток! Редактируя шаблон меню horizontal_multilevel, столкнулась с проблемой: как...

Выпадающее меню - разный размер шрифта для разных уровней меню
Есть у меня данный список, но возник вопрос: &quot;как сделать чтобы в надписи буквы1 был шрифт 19px, а...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru